小程序登陆流程

登录流程图

小程序登录流程可以被下图很好地概括
小程序登录流程

具体步骤

登录流程涉及到到三端

  • 小程序端
  • 开发者服务端
  • 微信服务端

登录流程大体分为5步

  1. 小程序端:调用wx.login()方法从微信端拿到小程序登录凭证code,该凭证有效期只有5分钟
  2. 小程序端:用wx.request()方法将登录凭证code提交到开发者服务端。
    第1和第2步的代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Page({
tapLogin: function() {
wx.login({
success: function(res) {
if (res.code) {
wx.request({
url: 'https://test.com/login',
data: {
username: 'zhangsan', // 用户输入的账号
password: 'pwd123456', // 用户输入的密码
code: res.code
},
success: function(res) {
// 登录成功
if (res.statusCode === 200) {
console.log(res.data.sessionId)// 服务器回包内容
}
}
})
} else {
console.log('获取用户登录态失败!' + res.errMsg)
}
}
});
}
})
  1. 开发者服务端:用拿到的登录凭证code加上appidappsecret到微信服务端的code2Session接口去换取openidsession_keyappidappsecret可以在小程序管理平台中查到:
    kPRu6g.md.png
  2. 开发者服务端:
    • openid就是微信用户id,开发者服务端可以将自己的用户id和openid进行一对一的绑定,方便以后登录,绑定完成后生成自己的sessionid,之后将sessionid下发给小程序端;
    • session_key是用于之后和微信服务通信的,不能泄露,也不能下发给小程序端
  3. 小程序端:拿到sessionid后,之后和开发者服务端通信只要带上sessionid,服务端就能识别当前的用户。