码迷,mamicode.com
首页 > 微信 > 详细

微信授权登录方式

时间:2019-12-06 14:00:35      阅读:401      评论:0      收藏:0      [点我收藏+]

标签:strong   call   appid   font   return   mamicode   style   key   turn   

传统微信授权登录方式

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

 

 


 

 

 

 

 

 

 

 

微信授权登录方式

标签:strong   call   appid   font   return   mamicode   style   key   turn   

原文地址:https://www.cnblogs.com/baixinL/p/11994371.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!