微信小程序的授权登录
首先你需要知道微信小程序官网提供的授权登录流程,附上网址(官网流程图)
分析得到
前端(即小程序端)需要做的事情。:
- 通过wx.login() 获取code值,
- 通过后端提供的API接口,使用 wx.request把code值发送后端
- 通过wx.request的success方法,接受到后端返回的自定义登录态,并保存起来,可能别的API接口需要登录态。
后端需要做的事情。
- 后端接受到code之后,通过微信服务器接口来换取oppenid(用户唯一标识)、session_key(会话密钥)和UnionID,主要是oppenid与session_key。
- 后端自定义登录态与oppenid、session_key关联。
- 后端返回自定义登录态给前端。
注意点
- 获取用户头像、昵称、性别及地区信息,需要使用wx.getUserProfile接口
- 如果用户登录成功之后,再次调用wx.login接口,用户的session_key(会话密钥)可能会被更新而致使旧session_key失效,从而导致校验失败,具体请看微信小程序官网介绍----会话密钥 session_key 有效性这一介绍。网址链接,
部分代码
<button bind:tap="getInfo">获取用户信息</button>
getInfo() {
wx.getUserProfile({
lang: 'zh_CN',
desc: '用于完善会员资料',
success: async res => {
let code = await this.getCode()
wx.request({
url:'',
data:{
code:code
},
method:'get',
success:res=>{
}
})
}
})
},
getCode() {
return new Promise((resolve, reject) => {
wx.login({
success: res => {
resolve(res.code)
}
})
})
},
|