小程序使用微信快速登录
总体流程
- 根据微信的官方文档,我们首先需要调用wx.login()接口获取临时登陆凭证code
- 然后向后端传送code字段,后端调用auth.code2Session接口获取微信用户的openid和session_key(openid对于小程序用户是唯一的,但是公众号和小程序的openid是不同的,这需要通过unionID来区别用户的唯一性)
- 后端对openid和session_key做自己的逻辑处理
获取微信用户信息
现在的版本在未授权的情况下无法直接调用wx.getUserInfo()来获取微信用户信息,我们需要用一个button来授权,详见文档
1
<button open-type="getUserInfo" bindgetuserinfo="getuserinfo">sdsd</button>
点击按钮的时候将code和userInfo里的信息一同传给后端进行处理
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
27
28
29
30
31// 获取微信用户code
getCode () {
const promise = new Promise(resolve => {
wx.login({
success: (res) => {
resolve(res)
}
})
})
return promise
},
getuserinfo(res) {
const userinfo = res.detail.userInfo
this.getCode().then(res => {
// console.log(res)
const code = res.code
wx.request({
url: config.api_base_url_local + '/loginbywechat',
method: 'POST',
data: {
id: code,
faceImage: userinfo.avatarUrl,
nickname: userinfo.nickName
},
success: (res) => {
console.log(res)
}
})
})
},
后端对字段进行拼接并调用微信官方接口
1 | public JSONResult userRegisterByWechat (@RequestBody Users user) throws Exception { |