mysql会话过期,小程序session_key失效解决方案、后台解密个人数据信息

本文主要介绍了当微信小程序的session_key过期时的处理方案,包括使用wx.checkSession检测session_key有效性,重新执行登录流程获取新的session_key。同时,详细阐述了解密用户信息的过程,涉及后端如何利用session_key、encryptedData和iv解密并存储用户数据到utf8mb4编码的MySQL数据库。
摘要由CSDN通过智能技术生成

一、登录会话密钥 session_key 有效性

开发者如果遇到因为 session_key 不正确而校验签名失败或解密失败,请关注下面几个与 session_key 有关的注意事项。

wx.login 调用时,用户的 session_key 可能会被更新而致使旧 session_key 失效(刷新机制存在最短周期,如果同一个用户短时间内多次调用 wx.login,并非每次调用都导致 session_key 刷新)。开发者应该在明确需要重新登录时才调用 wx.login,及时通过 auth.code2Session 接口更新服务器存储的 session_key。

微信不会把 session_key 的有效期告知开发者。我们会根据用户使用小程序的行为对 session_key 进行续期。用户越频繁使用小程序,session_key 有效期越长。

开发者在 session_key 失效时,可以通过重新执行登录流程获取有效的 session_key。使用接口 wx.checkSession可以校验 session_key 是否有效,从而避免小程序反复执行登录流程。

当开发者在实现自定义登录态时,可以考虑以 session_key 有效期作为自身登录态有效期,也可以实现自定义的时效性策略。

二、解决登录session_key 的问题

通过wx.checkSession判断是否过期。

第一步:在生命周期中onLaunch调用一次写的登录方法

第二步:在其他地方通过wx.checkSession判断是否过期,如果过期再次调用登录方法,更新session_key

案例:解决session_key 过期问题,发送个人信息后台解密

# app.js中:

//app.js

App({

/*

当小程序初始话完成,会触发onlaunch(全局只触发一次)

*/

onLaunch: function () {

// 登录

this.my_login()

},

my_login:function(){

let that = this

wx.login({

success: res => {

// 发送 res.code 到后台换取 openId, sessionKey, unionId

console.log(res.code)

wx.request({

url: that.globalData.baseurl + "login/",

data: { "code": res.code },

method: "POST",

success(e) {

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值