微信授权登录方式

传统微信授权登录方式

  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,但是获取不到头像和昵称等等信息): 微信授权登录方式

 

 


 

 

 

 

 

 

 

 

上一篇:pylons和AuthKit OpenID问题


下一篇:javascript-在PhoneGap平台上使用OpenID