小程序登录流程笔记
一直以来,都没有好好的了解过微信小程序的登录流程,而且,对于微信登录和微信授权,很久不写小程序以后,再拿来用的时候会混淆一部分概念,所以简单做个笔记,防止下次脑抽!
首先要搞清楚两个概念:
微信登录是从微信服务器拿到一个合法的code,用来请求当前小程序对用户的openid。
微信授权是我们需要得到用户的基础信息,如昵称、头像等信息,在小程序本地发起的行为。
微信登录 wx.login()
wx.login({ // 发起微信登录
success (r){
if(r.code){ // 获取code
// 通过code向微信请求openid,在后台通过openid拿到用户信息
// 整个获取<->使用openid的流程前台不可见
wx.request({
url: `${Common.host}/user/wxlogin/?code=${r.code}`,
success (r){
r = r.data;
if(r.code == 1001) that.gd.user = r.data;
}
})
}
}
})
微信授权 wx.getUserInfo()
wx.getSetting({ // 判断用户是否已经授权过
success (r){
// 已经授权,把授权的个人信息和服务器中的数据合并
if(r.authSetting['scope.userInfo']){
wx.getUserInfo({
success (rr){
Object.assign(App.gd.user, rr.userInfo)
}
})
}else{
// 未授权,发起授权
common.getUser();
}
}
})
代码仅供参考。
本文标签: 微信登录