徐向博 / Imin.

小程序登录流程笔记
作者:Imin 时间:2020-09-01 分类: 微信开发

一直以来,都没有好好的了解过微信小程序的登录流程,而且,对于微信登录和微信授权,很久不写小程序以后,再拿来用的时候会混淆一部分概念,所以简单做个笔记,防止下次脑抽!


首先要搞清楚两个概念:

微信登录是从微信服务器拿到一个合法的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();
        }
        
    }
})

代码仅供参考。

本文标签: 微信登录