微信小程序的一键授权登录。

微信小程序的授权登录

首先你需要知道微信小程序官网提供的授权登录流程,附上网址(官网流程图

分析得到

前端(即小程序端)需要做的事情。:

  1. 通过wx.login() 获取code值,
  2. 通过后端提供的API接口,使用 wx.request把code值发送后端
  3. 通过wx.request的success方法,接受到后端返回的自定义登录态,并保存起来,可能别的API接口需要登录态。

后端需要做的事情。

  1. 后端接受到code之后,通过微信服务器接口来换取oppenid(用户唯一标识)、session_key(会话密钥)和UnionID,主要是oppenid与session_key。
  2. 后端自定义登录态与oppenid、session_key关联。
  3. 后端返回自定义登录态给前端。
注意点
  1. 获取用户头像、昵称、性别及地区信息,需要使用wx.getUserProfile接口
  2. 如果用户登录成功之后,再次调用wx.login接口,用户的session_key(会话密钥)可能会被更新而致使旧session_key失效,从而导致校验失败,具体请看微信小程序官网介绍----会话密钥 session_key 有效性这一介绍。网址链接
部分代码
<button bind:tap="getInfo">获取用户信息</button>
  getInfo() {
    wx.getUserProfile({
      lang: 'zh_CN',
      desc: '用于完善会员资料',
      success: async res => {
        let code = await this.getCode()
        wx.request({
          url:'',
          data:{
            code:code
          },
          method:'get',
          success:res=>{
            // 从res里面获取登录态,并保存待用
          }
        })  
      }
    })
  },
  getCode() {
    return new Promise((resolve, reject) => {
      wx.login({
        success: res => {
          resolve(res.code)
        }
      })
    })
  },
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是大刚啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值