微信公众号H5授权登录

  • 废话不多,直接上代码(这里只写代码的实现)

废话不多,直接上代码(这里只写代码的实现)

页面进来判断微信环境

onShow() {//设置初始值为false,微信环境下才能打开this.isWeixin = this.isWechat()if (this.isWeixin) {if (uni.getStorageSync('token') == '' || uni.getStorageSync('token') == null || uni.getStorageSync('token') == undefined) {this.checkWeChatCode()return false} else {}} else {uni.showToast({title: '请在微信浏览器打开',icon: 'none'})}if (uni.getStorageSync('nickname')) {this.nickname = uni.getStorageSync('nickname')}if (uni.getStorageSync('avatar')) {this.avatar = uni.getStorageSync('avatar')}if (uni.getStorageSync('cardtype')) {this.cardtype = uni.getStorageSync('cardtype')}},

方法里面部分代码

         //方法:用来判断是否是微信内置的浏览器isWechat() {return String(navigator.userAgent.toLowerCase().match(/MicroMessenger/i)) === "micromessenger";},//用来提取微信url的codegetUrlCode(name) {return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) ||[, ''])[1].replace(/\+/g, '%20')) || null},//检查浏览器地址栏中微信接口返回的codecheckWeChatCode() {let code = this.getUrlCode('code')if (code) {this.getOpenidAndUserinfo(code)}},//请求微信接口,用来获取code  (我这里直接写的点击事件绑定并判断token展示未登录或者登录状态)getWeChatCode() {let local = encodeURIComponent(window.location.href); //获取当前页面地址作为回调地址let appid = '你的公众号appid'window.location.href ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=" +appid +"&redirect_uri=" +local +"&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect";},//把code传递给后台接口,实现登录getOpenidAndUserinfo(code) {let data = {code: code}//这里的参数由于后端人员的要求,做了加密处理http.post('登录接口', Base64.encode(JSON.stringify(data))).then(res => {if (res.result.status == 2) {//此时说明code已经失效或者toke过期,需重新获取code进行登录this.getWeChatCode()}if (res.errorcode != 0) {uni.showToast({title: res.message,icon: 'none'})} else {this.afterLogin(res)}}).catch(err => {console.log(err)})},/*微信登录*/afterLogin(res) {let user = res.resultuni.setStorageSync('avatar', user.user_mes.wechat_avatar ? user.user_mes.wechat_avatar : '')uni.setStorageSync('nickname', user.user_mes.name ? user.user_mes.name : '')uni.setStorageSync('id', user.user_mes.user_id ? user.user_mes.user_id : '')uni.setStorageSync('token', user.user_mes.user_token ? user.user_mes.user_token : '')uni.setStorageSync('status', res.status)//自定义跳转页可自行封装方法,这里不多做阐述uni.reLaunch({url: '/pages/mine/mine'})},

最后在调用其他接口时判断后端人员返回的token进行重定向登录或者进行其他逻辑

【微信公众号H5授权登录】相关推荐

  1. redirect_uri 参数错误 公众号H5授权登录原理

    redirect_uri 参数错误,这个错误请检查网页授权,大部分是回调的授权域名配置问题 公众号H5授权登录 在微信公众号里获取微信用户信息分两种方式 注意:以下所有操作,都需要再公众号配置网页授权 ...

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

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

  3. 基于TP5、EasyWeChat、fastadmin微信公众号网页授权登录

    第一种使用EasyWeChat拉起登录 使用 composer 安装 EasyWeChat $ composer require overtrue/wechat:~5.0 -vvv 或者在compos ...

  4. java 微信公众号之授权登录

    1.来吧,先来在微信公众号中做一些基本的信息配置 打开此链接:https://mp.weixin.qq.com 在公众号设置-->功能设置,设置网络授权域名 这里一定注意:地址不可以以http: ...

  5. 微信公众号网页授权登录完整步骤版学不会你打我....

    微信点击授权登录 全过程版本轻松完成 第一步 注册微信测试号 具体操作步骤 第一步:用户同意授权,获取code 第二步:通过code换取网页授权access_token 第三步:拉取用户信息(需sco ...

  6. 微信公众号网页授权登录多域名的解决方法

    最近在项目中,由于我们只有一个公众号,但有多个业务系统,就想可以都让同一个公众号授权登录,方便用户的管理.但问题来了,我们都知道微信公众号授权域名只能填写两个,如果我们有多个呢,该如何解决呢. 在网上 ...

  7. 微信公众号H5开发登录授权流程

    很久没写博客了,最近实在是太忙,有太多东西想写想记录.今天写个关于微信登录的过程吧,这次项目是我第一次写关于微信的东西,这个登录授权搞了半天.但总算是把流程搞明白了,先附上微信官方文档 微信公众平台 ...

  8. [JAVA实现]微信公众号网页授权登录,java开发面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  9. PHP微信公众号网页授权登录 扫码登录 获取用户基本信息

    前言 现在微信登录是一个网站.APP的标配,所以微信授权登录是我们应该要掌握的.微信授权登录有4种方式: 1.通过微信开放平台 2.通过认证的微信服务号 3.通过认证的微信订阅号 4.通过微信小程序曲 ...

最新文章

  1. 一周内咸鱼疯传2.4W次,最终被所有大厂封杀
  2. 虚拟机上Redhat linux9.0的VMware Tools详细图文教程
  3. 马斯克成功把人从太空送回地球!历时64天,SpaceX首次载人任务圆满收工
  4. Git基础之(二十)——标签管理——创建标签
  5. LevelDB原理及应用
  6. [POI2006]OKR-Periods of Words
  7. 树中点对距离(点分治)
  8. SWFUpload V2.2.0 说明文档
  9. 如何将Java应用程序置于Apache HTTP服务器之后
  10. Maven : 将 Jar 安装到本地仓库和 Jar 上传到私服
  11. Gulp-静态网页模块化
  12. 旋转卡壳 背诵用模板
  13. 推断一个图片是不是伪造的方法
  14. warning C4819: The file contains a character that cannot be represented in the current code page
  15. DNA和纳米(Nano)Fusion技术的发展趋势
  16. NetBeans简介和简单使用
  17. 【无人机学习】无人机基础知识
  18. 补丁冷启动模式_Bilibili 移动端组件化实践中的冷启动优化
  19. Python-F.softmax(dim)中dim使用理解
  20. JavaWeb宿舍管理系统环境搭建运行教程

热门文章

  1. 多项目同时进行如何做好进度管理?
  2. 小程序的生命周期和页面的生命周期
  3. matlab曲线拟合工具箱 cftool
  4. 中国的RFID产业何时才能统一标准
  5. JavaScript Sets
  6. java 虚拟机(2)
  7. 基于空间金字塔网络的光流估计
  8. 谷歌浏览器突然翻译不了怎么办?
  9. citymaker 8 sketchup和3dsmax直接导出fdb
  10. nginx同一个地址端口代理多个页面