会话(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就可以进行业务请求了
用户
用户是通过<button open-type="getUserInfo" bindGetUserInfo="getUserInfo">授权登陆</button>点击之后就会弹出微信授权页面,同意后就会获得用户信息(如果通过wx.getSetting()检查已授权,可以直接调用wx.getUserInfo())
| 参数 | 类型 | 说明 |
|---|---|---|
| userInfo | OBJECT | 用户信息对象,不包含 openid 等敏感信息 |
| rawData | String | 不包括敏感信息的原始数据字符串,用于计算签名。 |
| signature | String | 使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息,参考文档 signature。 |
| encryptedData | String | 包括敏感数据在内的完整用户信息的加密数据,详细见加密数据解密算法 |
| iv | String | 加密算法的初始向量,详细见加密数据解密算法 |
然后把这些信息传给后端后端可以进行签名比对 和 敏感数据(unionid``openid)解密











网友评论