介绍
这篇文章主要介绍了微信小程序中用户数据解密的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
<强>微信小程序用户数据解密强>
<强>官方指引图:强>
引导图一步一步操作
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微信小程序中用户数据解密的示例分析