小程序的API接口文档写的很清晰,现在理一遍思路。

前端通过wx.login()获取code ,把code发给后台,后台返回openid,再获取用户的授权信息(这里先判断是否授权,授权过的就直接进入小程序,没授权过的,跳转到授权页进行)。

在app.js 页  onLaunch: function () {var _this = this;// 登录
    wx.login({success: res => {// 发送 res.code 到后台换取 openId, sessionKey, unionId// 登陆成功if (res.code) {// 发起网络请求,获取微信信息
           console.log(res.code);wx.request({method: 'POST',url: getOpenIdUrl,data: {code: res.code},success: function(res) {console.log(res);var openid = res.data.data.openid;// 获取微信信息
              _this.userInfo(openid);}})}}})userInfo:function(openid){   wx.getSetting({  //判断是否授权        if(!res.authSetting['scope.userInfo']){//如果没有授权            wx.redirectTo({              url:'/pages/login/login?openid='+openid,          })      }else{        console.log('已经授权')      }})

}

//在login页xml设置button
<button class='loginbutton'open-type="getUserInfo" bindgetuserinfo="userInfoHandler">请授权</button>
//js页
userInfoHandler:function(res){
var userMes = res.detail;
_this.setData({
userMes:userMes
})
if (res.detail.errMsg=='getUserInfo:ok'){
var url = '/pages/list/list';
_this.postAddUser(_this.data.openid, _this.redirectTo, url);
}else{
console.log('授权失败')

}
},redirectTo:function(url){   wx.redirectionTo({      url:url  })}postAddUser:function(openid,callback,callbackArg){     var _this=this;
wx.request({
method: 'POST',
url: login,
data: {
'rawData': _this.data.userMes.rawData,
'signature': _this.data.userMes.signature,
'encryptedData': _this.data.userMes.encryptedData,
'iv': _this.data.userMes.iv,
'openid': _this.data.openid
},
success: function (res) {
_this.saveCache('weInfo', res.data.data);
callback(callbackArg);
}

     }//保存缓存saveCache:function(key,value){   wx.setStorage({     key:key,     data:vulue })}

转载于:https://www.cnblogs.com/colorful-paopao1/p/8780163.html

关于微信小程序登录授权相关推荐

  1. uni-app微信小程序登录授权

    uni-app微信小程序登录授权 首先是需要用到一个授权按钮来触发获取用户信息授权: 关键在于 open-type 为 getUserInfo , 然后有个@getuserinfo的事件,把获取授权接 ...

  2. 微信小程序登录授权与授权手机号

    文章目录 前言 微信小程序登录授权与授权手机号 一.登录授权 1. 发送 res.code 到后台换取 openId, sessionKey 二.授权手机号 官方规定 因为需要用户主动触发才能发起获取 ...

  3. RuoYi-Vue微信小程序登录授权

    目前的框架中token是使用jwt生成,存储到redis控制token时效,而认证是使用UsernamePasswordAuthenticationToken实现的 微信小程序登录授权 需求分析 解决 ...

  4. UNIAPP---实现微信小程序登录授权和手机号授权(uniapp做微信小程序)

    UNIAPP-实现微信小程序登录授权和手机号授权(uniapp做微信小程序) 描述:uniapp开发小程序,先授权用户信息后再出现手机号授权的页面进行手机号授权.完成后返回上一页面并把信息存入后台以及 ...

  5. android微信登录获取微信账号,微信小程序--登录授权,一键获取用户微信手机号并登录...

    一.前言 微信小程序登录流程时序 说明: 小程序调用wx.login() 获取 临时登录凭证code ,并回传到开发者服务器 开发者服务器以code换取 用户唯一标识openid 和 会话密钥sess ...

  6. 使用若依写微信小程序登录授权认证接口

    本文教程,主要介绍一下,如何利用若依框架完成微信小程序的登录授权整个流程. 目录 一.注册微信小程序账号 二.获取AppID和AppSecret 三.微信小程序授权登录流程

  7. 微信小程序登录授权流程

    文章目录 小程序授权登陆流程 1.当用户进入微信小程序时,首先我们先判断用户是否授权过此小程序 2.如果没有授权,我们通过一个按钮来实现授权登录 3.通过bindgetuserinfo事件,我们可以获 ...

  8. 微信小程序登录授权{errcode:40013,errmsg:invalid appid, hints: [ req_id: qECcC0yFe-_ ]}问题

    登录授权{"errcode":40013,"errmsg":"invalid appid, hints: [ req_id: qECcC0yFe-_ ...

  9. 2021.4月28日24时新版本微信小程序登录授权新方法

    旧版本: Login:function(callback = () =>{}){ let that = this; uni.login({ success:function(loginRes){ ...

最新文章

  1. linux 卡在grub_详解ubuntu双系统启动时卡死解决办法
  2. spark广播变量的使用(转)
  3. JWT token信息保存
  4. JavaScript通用表单验证函数
  5. c#中结构与类的区别(转)
  6. web的case点总结
  7. 【零基础学Java】—网络编程(五十三)
  8. cocos2d-x 3.0学习游戏笔记的例子《卡塔防》第五步---开始建立游戏界面
  9. NOIP2016D2T2 蚯蚓
  10. python 贝塞尔曲线 反算控制点_根据贝塞尔曲线上的点反算t值
  11. Linux运维常用脚本整理
  12. Android显示实时帧率工具
  13. python爬虫实战——爬取猫眼电影TOP100并导入excel表
  14. 腾讯QQ表情生意经:建开放平台 与原创者最高六四分成
  15. 三十而立程序员天马行空的心理路程(迷茫/焦虑)
  16. 王润涵:如何用链脉名片打造朋友圈自明星
  17. ubuntu 下最简单的歌词软件osdlyric (with banshee)
  18. pyqt实现图片轮播
  19. 语音识别技术的发展及难点分析
  20. 安装RVM时报错 curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused

热门文章

  1. XAML实例教程系列 - 命名空间(NameSpace)
  2. 旧手机的新玩法:postmarketOS 已适配上百款安卓手机
  3. Redis存储总是心里没底?你大概漏了这些数据结构原理
  4. 归并排序的 Go 语言实现和优化
  5. 在阿里云服务器(ECS)上从零开始搭建nginx服务器
  6. CentOS7,使用tar命令解压缩文件
  7. 科普:浅谈 Hellinger Distance
  8. HDU 5695 Gym Class 拓扑排序
  9. css -- 运用@media实现网页自适应中的几个关键分辨率
  10. Windows上安装HADOOP单机伪分布式集群