微信小程序中用户数据解密的示例分析

  介绍

这篇文章主要介绍了微信小程序中用户数据解密的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

<强>微信小程序用户数据解密

<强>官方指引图:

微信小程序中用户数据解密的示例分析

引导图一步一步操作

1,获取代码

onLoad:, function (选项),{//才能,页面初始化,选项为页面跳转所带来的参数   let 才能;that =,   wx.login({才能   ,,,成功:function  (res), {   ,,,//成功   ,,,let  code =res.code   ,,,that.setData({,代码:code })   ,,,wx.getUserInfo ({   ,,,,成功:,function  (res), {   ,,,,,//成功   ,,,,,that.setData({,用户信息:res.userInfo })   ,,,,,that.setData({,四:res.iv })   ,,,,,that.setData ({, encryptedData: res.encryptedData })   ,,,,,that.get3rdSession ()   ,,,,}   ,,,})   ,,}   ,})   }

2,发送代码到第三方服务器,获取3 rd_session

get3rdSession:函数(){   let 才能;that =,   wx.request({才能   ,,,url: & # 39; https://localhost: 8443/get3rdSession& # 39;   ,,,数据:{   ,,,代码:this.data.code   ,,},   ,,,方法:& # 39;得到# 39;,,//,,,,,,,,,,,删除,跟踪,连接//,,,头:,{},,//,设置请求的,头   ,,,成功:function  (res), {   ,,,//成功   ,,,var  sessionId =, res.data.session;   ,,,that.setData ({, sessionId: sessionId })   ,,,wx.setStorageSync (& # 39; sessionId # 39;,, sessionId)   ,,,that.decodeUserInfo ()   ,,}   })才能   以前,}

3,在第三方服务器上发送appid, appsecret,代码到微信服务器换取session_key和openid

这里使用JFinal搭建的服务器

复述,配置

public  void  configPlugin (Plugins 我),{//用才能于缓存用户信息模块的复述,服务   RedisPlugin 才能;userInfoRedis =, new  RedisPlugin (“userInfo",“localhost");   me.add才能(userInfoRedis);   }

获取第三方会议

public  void  get3rdSession (), {//才能获取名为用户信息的Redis 缓存对象   Cache 才能;userInfoCache =, Redis.use (“userInfo");   String 才能;sessionId =,““   JSONObject 才能;json =, new  JSONObject ();   String 才能;code =, getPara (“code");   String 才能;url =,“https://api.weixin.qq.com/sns/jscode2session?appid=wx7560b8008e2c445d&秘密=f1af3312b7038513fd17dd9cbc3b357c& js_code=? +, code  +,“和grant_type=authorization_code";//才能执行命令生成3 rd_session   String 才能;session =, ExecLinuxCMDUtil.instance.exec (“cat /dev/urandom  | od  -x  |, tr  -d  & # 39;, & # 39; |, head  -n  1“) .toString ();   json.put才能(“session",,会话);//才能创建默认的httpClient实例   CloseableHttpClient 才能;httpClient =, getHttpClient ();   try {才能   ,,,//用得到方法发送http请求   ,,,HttpGet  get =, new  HttpGet (url);   ,,,System.out.println(“执行得到请求:....“,+,get.getURI ());   ,,,CloseableHttpResponse  httpResponse =,空;   ,,,//发送得到请求   ,,,httpResponse =, httpClient.execute(得到);   ,,,try  {   ,,,,,//响应实体   ,,,,,HttpEntity  entity =, httpResponse.getEntity ();   ,,,,,if  (null  !=,实体),{   ,,,,,,,String  result =, EntityUtils.toString(实体);   ,,,,,,,System.out.println(结果);   ,,,,,,,JSONObject  resultJson =, JSONObject.fromObject(结果);   ,,,,,,,String  session_key =, resultJson.getString (“session_key");   ,,,,,,,String  openid =, resultJson.getString (“openid");   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

微信小程序中用户数据解密的示例分析