欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 微信小程序登录会话流程学习

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:738

高端HTML5响应式企业通用网

2020-05-06   浏览:518

html5响应式外贸网站英文版

2020-05-08   浏览:505

HTML5自适应律师工作室类网

2020-04-04   浏览:502

HTML5影视传媒文化公司类网

2020-05-12   浏览:496

微信小程序登录会话流程学习

发布时间:2020-10-23  
背景

微信小程序的使用可以快速的基于场景进行用户圈的建立推广,其中根据业务需要使用用户信息以及授权过程,主要用到的有微信在开发工具中已经封装好的 api 函数:wx.login、wx.getUserInfo、wx.checkSession、wx.getStorageSync、wx.request等

1. 关键词

开放数据
调用 wx.getUserInfo(此接口有调整,使用该接口将不再出现授权弹窗,使用 <button open-type="getUserInfo" ></button>引导用户主动进行授权操作) 成功时 返回的用户开放数据,可以在任意时候获取,但其中的加密数据encryptedData需要使用用户的session_key作为秘钥进行解密才能得到原始完整数据。为了防止返回的数据被人篡改伪造,开发者可以将 signature、rawData 发送到开发者服务器进行校验。服务器利用用户对应的 session_key 使用相同的算法计算出签名 signature2 ,比对 signature 与 signature2 即可校验数据的完整性。返回结果主要包括:

参数 类型 说明 userInfo OBJECT 用户信息对象,不包含 openid 等敏感信息 rawData String 不包括敏感信息的原始数据字符串,用于计算签名。 signature String 使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息,参考文档 signature。 encryptedData String 包括敏感数据在内的完整用户信息的加密数据,详细见加密数据解密算法 iv String 加密算法的初始向量,详细见加密数据解密算法 //调用成功后返回结果示例 { encryptedData:"6exNeBvACX+EpzLNF2vYRhM0Z1tNZnBOYP0Qh6jQ4Ofv+69qY/RGVAB34aj4f364mkjAAD5pgDDJ41hGkkr/IaHJGioI3EhGSEQyrAfE1mPovV9s6Prg4rKedfBUerG4jEgXbS0GeERMtJ15tqEGz7qzcA49c1D1obZTuneImZq1vB1lXo3oUbnmK7LUAxQcgCQA==", errMsg:"getUserInfo:ok", iv:"X6PuFoueBpfgyjV9l9D6A==", rawData:"{"nickName":"xxx","gender":1,"language":"zh_CN","city":"","province":"","country":"Iceland","avatarUrl":"https://wx.qlogo.cn/mmsen/vi_s/0daYVYsscPNxEvALzBTsJarXwUmlxjZJZMHPM6NNLegH4wLRcRlsA1x4bsJg/132"}", signature:"c32wba325164258b9a332b6fdsdew2e520081348", userInfo: { avatarUrl:"https://wx.qlogo.cn/mmsen/vi_s/0daYVYsscPNxEvALzBTsJarXwUmlxjZJZMHPM6NNLegH4wLRcRlsA1x4bsJg/132", city:"", country:"Iceland", gender:1, language:"zh_CN", nickName:"xxx", province:"" } }

敏感数据获取(加密数据encryptedData签名signature)

微信小程序登录会话流程学习

对于encryptedData,开发者如需要获取敏感数据,需要对接口返回的加密数据( encryptedData )进行对称解密。
也就是需要在开发者服务器上利用session_key解密获得的encryptedData,其结构如下:

{ "openId": "OPENID", "nickName": "NICKNAME", "gender": GENDER, "city": "CITY", "province": "PROVINCE", "country": "COUNTRY", "avatarUrl": "AVATARURL", "unionId": "UNIONID", "watermark": //数据水印 { "appid":"APPID", //敏感数据归属appid,开发者可校验此参数与自身appid是否一致 "timestamp":TIMESTAMP //敏感数据获取的时间戳, 开发者可以用于数据时效性校验 } }

自定义登录态
环境:开发者服务器上
数据:利用接口调用获得的开放数据或者解密后的敏感数据以及session_key
操作:利用数据建立用户在小程序的唯一标识,以及发送自己定义的登录状态信息记录session(也可以是其他的信息记录)给客户端,session_key作为秘钥,必须保存在开发者服务器上(以前接口https://api.weixin.qq.com/sns... 可以在小程序开发设置--服务器配置里设置为合法地址,现在不行了,只能使用第三方服务器进行接口调用)
使用: 用户非首次登陆——>查询本地缓存中的自定义session——>获取到session向开发者服务器查询——>服务器上此session未过期可用——>用户可正常业务请求(这只是登陆情况比较普遍正常的一种)

2.登录

官方给的图示:(大概步骤可以看官方文档)

微信小程序登录会话流程学习

本文标签

:备案管家服务帮您把复杂流程变简单,解决您在进行网站备案过程中遇到的效率低下和成功率不高的问题。个人300/2个域名,企业500/5个域名,qq1650004.