以上是官网上的微信小程序登录流程。
1、小程序启动时,通过wx.login方法获取到code(注意这个code只能使用一次),然后通过接口发送到我们自己的服务器(开发者服务器)后台。
2、后台获取到code后和从开发者平台获取到的appid,appSecret一起调用 auth.code2Session 接口到微信服务器,获取到session_key,unionid,openid并存入开发者服务器后台数据库。
session_key:会话密钥;它是微信服务器生成的针对用户数据加密签名的密匙,不应该传输到客服端。
unionid:每个用户在同一个微信开放平台下的不同的小程序有相同的id,叫unionid;
openid:不同小程序都有不同的用户唯一标识。
3、后台通过openid或者unionid生成自己的唯一登录标识token,并返回给前台小程序(用户的前台小程序)。
4、前端(或前台)通过对后台的唯一登录标识token调用后台接口,即是携带登录态用wx.request()向后台发出请求,后台便能识别用户,而给予回复,返回业务数据给前台小程序。
5.以后客服端(终端)与开发者之间的通信及数据的传输,都是以唯一登录标识token的3rd_session为确认身份标识进行。
App({
onLaunch() {
// 登录
//wx.login()方法获取code
wx.login({
success (res) {
if (res.code) {
console.log(res.code)
console.log("code: " + res.code);
wx.getSetting({
success: (result) => {
console.log(result)
},
fail: (res) => {},
complete: (res) => {},
})
例如:在App中wx.login所获得的code是code: 0c3AOcml2xPKwd4luxml2diaRq4AOcmy。再看看wx.getsetting所得到的返回函数的结果是{authSetting:
- scope.address: true
- scope.invoice: true
- scope.invoiceTitle: true
- scope.userInfo: true
- ....
其中的userInfo里面的头像、昵称、性别、国家、省市均在里面。scope.userInfo: true也就是说userInfo的属性内容均已在小程序中获得了,只是不显示出,然后经过用户同意后就可以显示在输出端(终端)。
以上是个人对微信小程序的理解。如有不对请老师指正。
标签:code,登录,微信,流程,程序,res,后台,wx From: https://blog.csdn.net/2301_81058799/article/details/139222335