微信授權登錄方式


傳統微信授權登錄方式

  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,但是獲取不到頭像和昵稱等等信息):

 

 


 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM