当前位置:   article > 正文

微信小程序之登入逻辑_小程序登录逻辑

小程序登录逻辑

一、基础概念

  • openid:如果一个用户关注了不同的微信应用(公众号,小程序),那么就对应不同的openID
  • 如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。

二、具体登入逻辑

小程序登入逻辑时序图地址:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html
时序图:
在这里插入图片描述
简化图:在这里插入图片描述

  1. 小程序发送发起wx.login 获得code,再发起wx.request 给后端服务器传递参数code。
  2. 后端服务器发起请求 {url},传递code,appid,appsecret,返回json格式的session_key,openid.

一些说明:

三、具体逻辑代码

小程序端:

wx.login({
  success(res) {
    if (res.code) {
      //发起网络请求
      wx.request({
        url: '{具体后端接口}',
        data: {
          code: res.code
        },
        header:{
          'Content-Type':'application/json'
        },
        success:function(res){
          // var res = JSON.parse(res.data)
          that.globalData.openid = res.openid
          console.log(res.data)
        }
      })
    } else {
      console.log('登录失败!' + res.errMsg)
    }
  }
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

后端:

@web.route("/api/v1/wxlogin")
def loginwx():
    code =  request.args.get('code')
    
    url = "https://api.weixin.qq.com/sns/jscode2session?appid={}&secret={}&js_code={}&grant_type=authorization_code".format(
        '参数一','参数二',code
    )

    result = HTTP.get(url)

    return ({'openid':result['openid']})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/131843?site
推荐阅读
相关标签
  

闽ICP备14008679号