正常不需要支付的项目一般不需要做微信授权登陆,有业务需要的可以加,我这边项目中使用了微信支付功能所以需要搞个微信授权登陆

进入到登陆页面首先要执行

     onLoad(options) {if (options.code) {//alert(options.code);this.code = options.code;this.weChatLogin(options.code);} else {this.getAppId();}},//这里执行的是有code的情况下执行微信登陆//没有的话执行 this.getAppId()方法 this.getAppId()方法后面会介绍

通过getAppId方法请求接口获取到appid并且返回到/h5/pages/login/index?code=0313uHGa1dhPuF0PekFa1eCT2z23uHGl&state=STATE 登录页面并且获取到code

         // 获取公众号APPIDgetAppId() {uni.request({url: config.baseURL + '/api/thirdParty/weChatPay/getAppId',data: {organId: uni.getStorageSync('organId'),},method: 'GET',success: (res) => {console.log(res.data.data)let url = config.baseURL + "/h5/pages/login/index";location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + res.data.data + "&redirect_uri=" + url +"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"}})},

然后页面获取到code会执行微信登陆也就是前面onLoad中的this.weChatLogin(options.code)方法并传入code

         //微信端登陆weChatLogin(code) {let that = this;uni.request({url: config.baseURL + '/api/thirdParty/weChatPay/weChatLogin',data: {code,},method: 'GET',success: (res) => {console.log("返回openid",res.data.openid);// that.openid = res.data.data.openid;if (res.data.code == 500) { //code为500是没有此用户需要注册that.openid = res.data.openid;that.state = 1;//this.openid = res.data.openid;that.toggle('center');} else {that.openid = res.data.openid.data.openid;let {username} = res.data.openid.data;console.log("username",username)that.login(username,username)}}})},

我这边请求接口是执行的如果没有用户就直接让用户注册,有的话就直接让用户登陆。

         //用户登陆login(username, password) {let that = this;uni.request({url: config.baseURL + '/user/login',data: {username,password,},header: {'Content-Type': 'application/x-www-form-urlencoded'},method: 'POST',success: (res) => {console.log("token", res.data.token);let loginInfo = {username,password,}uni.setStorageSync('openid',that.openid);uni.setStorageSync('token', res.data.token);uni.setStorageSync('user', res.data.user)uni.setStorageSync('loginInfo', loginInfo);console.log(uni.getStorageSync('token'));//uni.navigateBack();app.websocket_init();uni.switchTab({//保留当前页面,跳转到应用内的某个页面url: '/pages/index/index'})}})},

uniapp微信公众号微信授权登陆实现相关推荐

  1. 微信公众号网页授权登陆

    之前接到需求是做公众号跳转h5的时候做一个登陆授权的这么一个功能.这个记录下来以免下次遇到忘记了 写的不是很清晰 https://mp.weixin.qq.com/ 微信公众平台网址 首先的进微信公众 ...

  2. 微信公众号网页授权--前端获取code及用户信息(vue)

    前段时间开发微信公众号网页授权,虽然网上已经有很多关于这方面的博客或者教程,但是第一次开发还是遇到挺多坑的,以下分享一下我的踩坑填坑之路. 一.测试号相关配置 首先在你公司申请的测试号上配置好相关信息 ...

  3. 微信公众号网页授权--前端获取code及用户信息(vue)【简单详细版】

    嗨喽大家好,前段时间开发微信公众号网页授权,虽然网上已经有很多关于这方面的博客或者教程,但是第一次开发还是遇到挺多坑的,以下分享一下我的遇到的一些问题的见解,希望对你们有帮助. 一.测试号相关配置 首 ...

  4. 微信公众号网页授权思路解析及具体代码

    微信公众号网页授权思路解析及具体代码 微信开发文档 实现方式也是两种: 1.静默授权登录 授权登录以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静 ...

  5. 微信公众号网页授权,获取用户信息以及openid -- PHP后台

    微信公众号网页授权,获取用户信息以及openid 这几天做项目,想通过公众号的appid获取用户的openid就,然后在网上查资料,问朋友,最后找到了方法,就是这个网页授权. 起初一直很蒙,这个怎么弄 ...

  6. 【微信公众号H5授权登录】

    微信公众号H5授权登录 废话不多,直接上代码(这里只写代码的实现) 废话不多,直接上代码(这里只写代码的实现) 页面进来判断微信环境 onShow() {//设置初始值为false,微信环境下才能打开 ...

  7. 微信公众号第三方授权开发——推送component_verify_ticket协议

    微信公众号第三方授权--接受微信推送component_verify_ticket协议 作者:凌晨四点的newyork 接收component_verify_ticket 在第三方平台创建审核通过后, ...

  8. 微信公众号网页授权时序图

    微信公众号网页授权时序图 公众号网页授权时序图

  9. 微信公众号网页授权登录的超简单实现步骤

    微信开放平台为第三方移动程序提供分享.传播的接口, 使用户可将第三方程序的内容发布给好友或分享至朋友圈, 下面这篇文章主要给大家介绍了关于微信公众号网页授权登录的超简单实现方法, 需要的朋友可以参考下 ...

  10. 微信公众号网页授权40163问题【php】

    微信公众号网页授权40163问题 tp5为例,emmmm-一直报40163或40029问题,翻遍了各大网站都没找到合适我的办法. 如图: 解决之后如图: 因为重定向所以请求了两次code,所以一直报4 ...

最新文章

  1. 用Django内置form组件实现注册
  2. Opengl-光照-颜色(其实要想做出好看的东西这章最重要了)
  3. 【教程】手把手企业FTP搭建实例
  4. java中class.forname连接mysql数据库_数据库链接与 Class.forName()用法详解
  5. ubuntu16.04安装vim报错 vim : Depends: vim-common (= 2:7.4.052-1ubuntu3.1) but 2:7.4.1689-3ubuntu1.3
  6. python3基础知识一
  7. 使用peewee增删查改数据库
  8. Codeforces 839B - Game of the Rows
  9. 我的k8s随笔:命令实践
  10. ParaFi Capital资产管理规模超1亿美元,至少投资22家公司或协议
  11. 如何成都报计算机考试,成都学院2017上半年计算机考试报名通知
  12. iOS shell脚本打包
  13. 【JavsScript】XMLHttpRequest Level 2 使用指南
  14. python的两种执行方式,python的两种运行方式
  15. 网页设计排版中哪些元素最重要?
  16. Java GC的标记-清除算法【总结】
  17. 一篇讲autoconf/automake的好文章
  18. C语言day1(数据类型、变量本质)
  19. SpringBoot脚手架搭建及运用
  20. 一文掌握 YUV 图像的基本处理

热门文章

  1. [家里蹲大学数学杂志]第048期普林斯顿高等研究所的疯子们
  2. 鸿蒙操作系统连接汽车,鸿蒙操作系统发布!万物互联的超级终端 华为上车令人无限遐想...
  3. 华为首款鸿蒙,本报记者体验华为首款鸿蒙产品
  4. 海岛纪元如何在电脑上玩 海岛纪元模拟器玩法教程
  5. 开心辞典计算机科学,2016年信息技术高考模拟题十详解.pdf
  6. 排查Pod卡在Terminating状态
  7. js动画和css动画的差别
  8. 基于CF(协同过滤)推荐算法
  9. 解决h5页面 ios出现果冻效果
  10. 2021年4月 第十二届蓝桥杯软件类省赛C++B组第一场 真题题解