zoukankan      html  css  js  c++  java
  • 微信授权登录方式

    传统微信授权登录方式

    1. 小程序调用wx.login获取(微信服务器端)code(5分钟有效,5分钟不使用失效,需重新调用wx.login);
    2. 小程序调用wx.request 将code传递给后端服务器;
    3. 后端使用code换取openid和session_key;
    4. 后端将openid(用户标识)发送个小程序本地存储。

    云开发微信登录

    1. 小程序调用云函数;
    2. 云函数(获取OPENID),cloud.getWXContext().OPENID;
    3. 小程序将用户信息存储到云数据库
    const wxContext = cloud.getWXContext()// 获取 WX Context (微信调用上下文),包括 OPENID、APPID、及 UNIONID(需满足 UNIONID 获取条件)等信息

    return {
      event,
      openid: wxContext.OPENID, //公众号有自己的openid,微信小程序也是自己的微信小程序
      appid: wxContext.APPID,
      unionid: wxContext.UNIONID,//有公众号和微信小程序,就会有一个unionid,公众号和微信小程序相同
      env: wxContext.ENV,
    }
     
     
    例如:
    wxml:
    <button bindtap="onGetOpenid">获取openid</button>
    js:
    onGetOpenid(){
      wx.cloud.callFunction({  //调用云函数login
        name:'login'
      }).then((res)=>{
        console.log("onGetOpenid",res)//打印返回结果
      }).catch((err)=>{
        console.log("err", err)
      })
    },
    云函数:
    exports.main = (event, context) => {
      const wxContext = cloud.getWXContext()
      return {
        event,
        openid: wxContext.OPENID,
        appid: wxContext.APPID,
        unionid: wxContext.UNIONID,
        env: wxContext.ENV,
      }
    }
    打印结果(未授权,也可以获取openid,但是获取不到头像和昵称等等信息):

     
  • 相关阅读:
    牛客网·剑指offer 从尾到头打印链表(JAVA)
    牛客网·剑指offer 替换空格(JAVA)
    简单的用户登录后台程序编写
    牛客网&剑指offer 二维数组中的查找(JAVA)
    洛谷 P1603 斯诺登的密码(JAVA)
    【回溯法】八皇后问题(递归和非递归)
    如何使用SecureCRT让Vim有颜色?
    js 转base64字符串为文件
    springboot 测试类
    oracle 登录、重启服务
  • 原文地址:https://www.cnblogs.com/baixinL/p/11994371.html
Copyright © 2011-2022 走看看