微信系列--微信小程序授权登陆流程

小程序开发了这么久。无论是工作还是面试,总会遇到一些问题,需要去总结。登陆问题一直以来都是面试考察的重点,所以我来总结一下小程序登陆的流程。
首先,我们需要搞明白,登陆是为了什么?
这么说其实有点蠢,但是我们又不得不这么说,因为很多人不知道登陆是干什么,其实从页面效果来看呢,就是要拿到用户信息展示在页面上,从技术角度来说呢,就是要拿到登陆的凭证–token。仅此而已,OK,知道了这俩点呢。我们就可以开干了。

手动授权登陆

在手动授权之前,我们可以先公共微信提供的API来检查用户是不是已经授权过:

1
wx.getSetting()

如果没有授权,那么在新版本的小程序登陆中,微信做了限制,要求用户必须手动,所以我们需要在页面中写点代码:

1
<button class='bottom' type='primary' open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="bindGetUserInfo">授权登录</button>
  • 这里要求必须设置open-type=”getUserInfo”
    这样点击按钮:
    登陆按钮
    就可以调起授权弹窗了。
    手动授权弹窗
    点允许,那么授权成功,这时会拿到用户的一些信息,
    用户信息
    这样我们再调用:

    1
    wx.login()

    用来获取微信的临时凭证,将获取到的信息和appid(小程序管理后台获取)一并发给我们自己的服务端,我们的服务端会拿着这些东西去微信服务器换取openid和session_key,这样我们自己的服务端就可以生成自己自定义的登陆态(token),r然后返回给前端,前端存储在localStorage.就可以发起业务请求了。
    alt 属性文本

  • 某些业务场景可能会需要手机号,因为获取手机号。所以需要调用,这里也必须要用户自己触发,且必须设置open-type=”getPhoneNumber”:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">获取手机号</button>
    getPhoneNumber(e) {
    const that = this;
    if (e.detail.errMsg !== 'getPhoneNumber:ok') {
    wx.showToast({
    title: '获取手机号失败',
    icon: 'none',
    });
    return;
    }
    }

    微信授权登陆,大致就是这样!!!!!!!!!!!!!

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2022 Lee
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信