Uni-app 之网络请求封装、响应数据加密解密-编程思维

一、效果图

 

 二、http.js网络请求封装

import {
    config
} from '../config.js'

import md5 from 'js-md5'
import { aes_encrypt, aes_decrypt } from '@/utils/aes_endecrypt.js';
import {Base64} from '@/utils/base64.js'

export const apiResquest = (prams) => { //prams 为我们需要调用的接口API的参数 下面会贴具体代码

    //设置接口验证
    var timestamp = new Date().getTime(), token = md5(timestamp + config.APITOKEN)
    token = aes_encrypt(token + '_' + timestamp)
    let headerData = {}
    let dataObj = null
    //因为我们的GET和POST请求结构不同这里我们做处理,大家根据自己后台接口所需结构灵活做调整吧
    if (prams.method === "GET") {
        headerData = {
            'content-type': 'application/json',
            'token': token
        }
    } else {
        headerData = {
            'content-type': 'application/x-www-form-urlencoded',
            'token': token
        }
        dataObj = prams.query
    }
    return new Promise((resolve, reject) => {
        // 判断环境
        let url = (config.env=='develop'?config.test_url:config.base_url) + prams.url; //请求的网络地址和局地的api地址组合
        uni.showLoading({
            title: '加载中',
            mask: true
        })
        return uni.request({
            url: url,
            data: dataObj,
            method: prams.method,
            header: headerData,
            success: (res) => {
                //解密
                var data = JSON.parse(Base64.decode(aes_decrypt(Base64.decode(res.data))))
                console.log(data)
                uni.hideLoading()
                //这里是成功的返回码,大家根据自己的实际情况调整
                if (data.code == -2) {
                    uni.showToast({
                        title: data.message,
                        duration: 3000,
                        icon: "none"
                    })
                    return;
                }
                resolve(data);
            },
            fail: (err) => {
                reject(err);
                console.log(err)
                uni.hideLoading()
            }
        });
    })
}

三、服务端加密

function myAseEncode($txt, $key="")
{
    return base64_encode(openssl_encrypt($txt,"AES-128-ECB",$key,0));
}

function myAseDecode($txt, $key="")
{
    return openssl_decrypt($txt,"AES-128-ECB",$key,0);
}
/**
 * 返回数据
 * @param int $code
 * @param string $message
 * @param array $data
 */
function returnMsg($code = 200,$message = '',$data = [])
{
    $return['code'] = (int)$code;
    $return['message'] = $message;
    //$return['data'] = is_array($data) ? $data : ['info'=>$data];
    $return['data'] = $data;
    die(json_encode(myAseEncode(base64_encode(json_encode($return)))));
}

 

版权声明:本文版权归作者所有,遵循 CC 4.0 BY-SA 许可协议, 转载请注明原文链接
https://www.cnblogs.com/yang-2018/p/16221041.html

uniapp editor 使用-编程思维

代码片段 <template> <view> <!-- 更多api,请前往:https://developers.weixin.qq.com/miniprogram/dev/api/media/editor/EditorContext.html 字体图标,微信小程

uni-app 中实现 onLaunch 异步回调后执行 onLoad 最佳实践-编程思维

前言 好久没写博客了,由于公司业务需要,最近接触uiapp比较多,一直想着输出一些相关的文章。正好最近时间富余,有机会来一波输出了。 问题描述 在使用 uni-app 开发项目时,会遇到需要在 onLaunch 中请求接口返回结果,并且此结果在项目各个页面的 onLoad 中都有可能使用到的需求,比如微信小程序在 on

uni-simple-router-编程思维

目录uni-simple-router一、快速上手扩一:webpack插件之DefinePlugin扩二:uni-read-pages 如何获取pages.json中的路由二、H5模式2.1 路由配置2.2 完全使用vue-router开发 (H5端)2.3 H5 路由传参2.4 H5端路由捕获所有路由或404路由2.

微信开发者工具的使用_陈晓猛-编程思维

要编写微信小程序需要先在微信公众号平台网站,进行账号注册, 下面是官方网址: https://mp.weixin.qq.com/ 比如我们现在需要的是小程序的账号 我们就点击小程序 进行账号的注册       个体申请小程序大概是5个 企业申请的话是 50个         下载工具,我这边下载的是 开发版 Nig