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,但是获取不到头像和昵称等等信息):

     
  • 相关阅读:
    云计算的三种服务模式:IaaS, PaaS, SaaS
    Docker 容器备份例子
    软件版本号
    git 命令小总结
    【Oracle】ORA-12560: TNS: 协议适配器错误
    【VMware】The VMX process exited permaturely
    Linux(CentOS)安装SQL Server
    Linux源码编译安装httpd
    Linux安装MySQL
    Linux安装Tomcat
  • 原文地址:https://www.cnblogs.com/baixinL/p/11994371.html
Copyright © 2011-2022 走看看