做个笔记记录一下之前写的微信小程序登录流程
微信小程序中,微信登录是必备定的
-
微信开发平台 微信登录流程
-
流程图如下
看这个图文信息,就能看懂大概的流程
我就根据我的项目说一下微信小程序登录流程
使用到uni.getUserProfile()
、uni.login()
API
uni.getUserProfile()
:提示用户授权获取用户信息(账号名、电话号码、性别、头像)等基本信息给后端uni.login()
:获取微信用户的临时code(用户登录凭证。开发者需要在开发者服务器后台,使用code
换取openid
和session_key
等信息),丢给后台利用临时的code
生成登录凭证Token
源码
Register() {
let that= this
uni.getUserProfile({ //获取用户微信信息
desc: '登录授权',
success: (res) => {
that.myUserInfo = res.userInfo //用户信息
let nickName = that.myUserInfo.nickName
let avatarUrl = that.myUserInfo.avatarUrl
uni.login({ //获取微信code
provider: 'weixin',//微信小程序
success: function(loginRes) {
that.getToken(loginRes.code, duijianren, nickName, avatarUrl)
}
});
},
fail: (res) => {
console.log("用户拒绝登录", res)
}
});
},
getToken(code, duijianren, nickName, avatarUrl) { //登录获取token
var that= this;
this.$http.request('测试接口').then(function(res) {
if (res.code == 200) {
uni.setStorageSync('Token', res.data.data.token);//保存token
uni.showToast({
title: '登录成功' //提示登录成功
});
return
}
uni.showToast({
title: '登录失败',
icon: "none"
});
}).catch(function(err) {
console.log(err)
})
},
现在新上线的小程序通过uni.getUserInfo()
是获取不到用户信息的,需要使用uni.getUserProfile()
获取,在用户主动授权后,才可以获取用户的信息