Taro微信小程序登录

1.调用Taro.login()获取登录凭证code;
2.调用Taro.request()将code传到服务器;
3.服务器端调用微信登录校验接口(appid+appsecret+code),获得session_key+openid;

4.服务器端生成AUTH_TICKET(相当于userId),使用AUTH_TICKET为key,session_key+openid为value的形式存在服务器,并将AUTH_TICKET传送给客户端;
5.客户端本地存储AUTH_TICKET,登录成功!
6.下次登录时可以用AUTH_TICKET传输到服务器端验证登录态是否过期,未过期则登录成功。

小程序API中Taro.checkSession()可以校验用户当前session_key是否有效。

//检测sessionkey
    Taro.checkSession({success: function() {//console.log("session_key 未过期")//session_key 未过期,并且在本生命周期一直有效
      },fail: function() {// session_key 已经失效,需要重新执行登录流程// 登录this.gotologin()}})

登录的代码:

gotologin = () => {var that = this//清除缓存
    Taro.clearStorageSync()// 登录
    Taro.login({success: res => {// 发送 res.code 到后台换取 openId, sessionKey, unionIdif (res.code) {//发起网络请求
          Taro.request({url: that.globalData.path + '/miniLogin/login.ajax',data: {code: res.code},success: res => {let mylogininfo = res.data.dataif (mylogininfo != null) {Taro.setStorageSync('logininfo', mylogininfo)console.log(mylogininfo)//登录验证  拿openid换AUTH_TICKET
                Taro.request({method: 'post',url:that.globalData.path +'/miniLogin/loginCheck.ajax',header: {'Content-Type': 'application/x-www-form-urlencoded'},data: {openid: mylogininfo.openid,unionid: mylogininfo.unionid ? mylogininfo.unionid : '',phoneNo: ''},success: res => {let mdata = res.dataif (mdata.code == 200) {Taro.showToast({title: '登录成功',icon: 'success',duration: 2000})// 存储AUTH_TICKET
                      Taro.setStorageSync('AUTH_TICKET',mdata.data.AUTH_TICKET)// 携带AUTH_TICKET请求接口,获取数据
                      Taro.request({method: 'post',url:that.globalData.path + '/comLogin/statffCompany.ajax',header: {'Content-Type': 'application/x-www-form-urlencoded','weixinauth': mdata.data.AUTH_TICKET},success: function(res) {console.log(res)}})} else if (mdata.code == 400) {//此ID未绑定//获取手机号码绑定
                    }}})} else {console.log(res.data)}}})} else {console.log('登录失败!' + res.errMsg)}}})}

转载于:https://www.cnblogs.com/juewuzhe/p/11130475.html

Taro -- 微信小程序登录相关推荐

  1. access突然需要登录_早知道早好,微信小程序登录开发需要注意的事项

    最近公司要做一个企业微信的小程序,方便企业内的成员来登录,以便一些公司内的业务,只限于公司内的成员来操作,因为有微信小程序的开发经验,所以先当作微信小程序来开发了! 首先来讲一下这个企业微信小程序与微 ...

  2. 微信小程序登录-利用Oenid实现白名单和黑名单

    微信小程序登录-利用Oenid实现白名单和黑名单 1.通过获取openid 存储到数据库中 2.结合数据库中额用户资料实现白名单和黑名单.

  3. Spring Boot + 微信小程序——登录凭证校验DEMO

    基本概念 微信小程序-登录凭证校验:通过 wx.login 接口获得临时登录凭证 code 后传到开发者服务器调用此接口完成登录流程. 微信小程序API https://developers.weix ...

  4. sessionkey 微信小程序获取_微信小程序登录,获取code,获取openid,获取session_key...

    微信小程序登录 wx.login(Object object) 调用接口获取登录凭证(code).通过凭证进而换取用户登录态信息,包括用户的唯一标识(openid)及本次登录的会话密钥(session ...

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

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

  6. php与ipa接口登录验证失败,thinkPHP5.0开发微信小程序登录接口signature验证失败

    我用TP5开发微信小程序登录接口的时候,在校验签名signature那遇到了个坑,一直校验失败,找了很久才发现 原因是:tp的input方法会自动转移html字符,比如'"'转成了 & ...

  7. 小程序 微信统计表格_微信小程序登录机制

    " 不是0,也不是1,有0也有1 " 总有一个瞬间,你想记录当下的一些事情,所以有了这篇文章,不会口吐芬芳,我直接开门了,但愿能让你见山. 1. 背景 21 届的校园招聘已经打响了 ...

  8. 微信小程序登录 返回 -41003

    微信小程序登录解密失败 小程序登录的时候,通过客户端获取的code等加密的信息,传给后端解密,可是后端解密返回 -41003 问题踩坑过程 复现流程: 用户点击授权按钮.通过 按钮绑定 getUser ...

  9. java后端微信小程序登录与注册

    java后端微信小程序登录与注册&微信登录授权 分析: 微信小程序用户表 的字段来源于微信服务器 , 必须想办法去获取到对应的用户信息 找到微信开放平台: 微信开放平台 以下是微信开放平台给出 ...

最新文章

  1. 关于ios phone APP生命周期的一点理解
  2. 静态方法和实例化方法的本质区别
  3. c++面向对象高级编程 学习八 non-explicit-one-argement-ctor
  4. 前端之 BOM 和 DOM
  5. JavaExcel工具类(兼容xls和xlsx)
  6. Linux系统下文件与目录操作讲解
  7. 复旦邱锡鹏Lab提出:一个统一的面向基于Aspect的所有情感分析子任务的生成式方法...
  8. 《天道》中最智慧的4句话,看懂改变一生
  9. python django开发教程_Python自动化运维Django入门
  10. 中国近代史-蒋廷黻-笔记-第一章-剿夷与抚夷-第二节-英国人做鸦片买卖
  11. 数字信号处理之数字混频
  12. word2010中“不包含”、“不存在”等特殊字符的输入方法
  13. Theorem、Proposition、Lemma和Corollary等的解释与区别
  14. 讯时后台编辑器在IE8下无法打开窗口的解决办法
  15. 独家可用发卡小程序源码下载卡密系统
  16. CSS揭秘:6.复杂的背景图案(下)
  17. 计算机发明者约翰·冯·诺依曼
  18. python PIL获取图片像素点
  19. ios点击大头针气泡不弹出_高德 ios 自定义气泡添加点击事件无效问题
  20. 解决macos13卡死转圈

热门文章

  1. iOS开发实战-时光记账Demo 本地数据库版
  2. Maven修改默认本地资源库文件夹
  3. JQ-CSS-实现导航菜单效果
  4. 设置Eclipse智能提示(转)
  5. 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(Part5) 转
  6. [转贴]超过80%的80后大学生不知道自己将来要干什么
  7. 虚拟机服务器503解决,(图文)解决重启VCSA 6.0提示:503 Service Unavailable错误
  8. apache php wordpress,windows 安装 apache php wordpress
  9. uniapp 子组件 props拿不到数据_Vue组件间的通信
  10. C++知识点38——拷贝赋值运算符、析构函数、=default、阻止拷贝和赋值