小程序的会话保持与用户登陆

会话(session)

小程序会话是通过wx.login()建立,通过wx.checkSession()检查是否过期。
wx.login()会返回一个code,把code传给服务端,服务端用code``appid``appsecret通过
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
就可以拿到openid``session_key
session_key用一定加密方式如sha1(session_key, mt_rand())生成一个自己的sessionid,暂时叫它skey
把这三个数据存入redis(数据库,本地文件, memcache等存储引擎都行),并且把skey返回给客户端,客户端每次请求在请求头中带上skey就可以进行业务请求了

用户

用户是通过点击之后就会弹出微信授权页面,同意后就会获得用户信息(如果通过wx.getSetting()检查已授权,可以直接调用wx.getUserInfo())

参数 类型 说明
userInfo OBJECT 用户信息对象,不包含 openid 等敏感信息
rawData String 不包括敏感信息的原始数据字符串,用于计算签名。
signature String 使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息,参考文档 signature。
encryptedData String 包括敏感数据在内的完整用户信息的加密数据,详细见加密数据解密算法
iv String 加密算法的初始向量,详细见加密数据解密算法

然后把这些信息传给后端后端可以进行签名比对 和 敏感数据(unionid``openid)解密

你可能感兴趣的:(小程序的会话保持与用户登陆)