项目需求描述:

用户通过扫码海报携带活动二维码跳转到h5页面,并且完成微信授权,完成授权的用户进入小程序后不再进行授权操作。这里边涉及到了两个大问题,一是怎样在一个域名下部署两个项目,二是用户点击授权之后跳转当前页,获取到code值后,什么时候向服务端发送授权请求。

先讨论第一个问题?

首先第一个项目正常打包部署即可,生成的域名`www.xxx.xxx`;
第二个项目的域名必须是`www.xxx.xxx/h5/`;
对于前端来说需要做的是:

1. 增加请求前缀,如图1
2. 配置路由信息,如图2
3. 修改模板文件index.html,如图3
4. 最后通过nginx将项目部署到服务器。

图1:

图2:

图3:
注意:如果你是通过vue开发的h5页面那么你只需要配置router文件就行,如果是原生开发的h5那么你就得配置.html文件。

就<meta base=/h5/ >做一说明:

base标记定义了文档的基础URL地址,在文档中所有的相对地址形式的URL都是相对于这里定义的URL而言的。一篇文档中的<base>标记不能多于一个,必须放于头部,并且应该在任何包含URL地址的语句之前。

 授权问题?

在h5页面点击授权后,重定向到当前项目 https://www.xxx.xxx/h5/

const jumpUrl = `https://www.xxx.xxx/h5/`window.location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxb20930d8128f9ba5&redirect_uri=${jumpUrl}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`
// location.herf 该url中除了重定向地址,其他的全是官方文档提供。// 重定向后的页面url地址会携带用户的code值,例如:`https://www.xxx.xxx/h5/?code=xxxxxxxxxxxxxxxxxxxxxxx` 这种形式

这样我们就能拿到用户code,再向服务端发送请求获取用户信息,在按照产品需求进行相应的操作。

以上是整个授权的流程,我在实现授权的过程中遇到了这样一个问题:

就是页面重定向之后是不会再去执行当前方法中后续代码的,所以不要在执行完window.location.href 这段代码后立马去获取url中的code值以及后续的请求操作。(原因浏览器重定向后会刷新页面,对于单页应用而言会发生组件卸载和重新渲染)应该在页面的根组件生命周期钩子中获取url中相应的值,去进行后续操作。(因为我当时使用vue开发的h5页面,所以当时是在`created`这个钩子中进行判断的),如果使用原生的话在`onload`函数中即可。

最近开发分享裂变需求,对开发过程遇到的问题做个小小的总结,阅读中如果发现有不正确或者不规范的地方及时指正,共同进步。

H5页面实现微信授权登录相关推荐

  1. 微信首页登录html页面,H5页面接入微信授权登录和分享

    前期准备 接入微信授权 分静默授权和非静默授权两种 静默授权: scope=snsapi_base,没有弹窗,只能获取用户的openId. 非静默授权: scope=snsapi_userinfo,有 ...

  2. 微信html5网站 集成,H5页面接入微信授权

    授权步骤 用户同意授权,获取code 通过code换取网页授权access_token 拉取用户信息(需scope为 snsapi_userinfo) 项目依赖 SpringBoot:2.1.4.RE ...

  3. H5网页获取微信授权登录

    进入页面判断是否获取code, 有code 则直接拿code去调后端接口让后端返回token,进而再调用获取用户信息的接口 mounted() {this.code = this.getQueryVa ...

  4. 微信h5页面之微信授权、获取头像等

    //js代码获取点击事件 var popupBox = document.querySelector('.popupBox') var showPopup = document.querySelect ...

  5. uni-app开发的h5,使用微信授权登录(前置条件+具体代码)

    微信内嵌浏览器运行H5版时,可以调起微信登录 普通浏览器调起微信登陆是不开放的,只有个别开发者才有,比如京东 前置条件 在微信内嵌浏览器运行H5版时,调起微信登录,需要配置回调域名 (请注意,这里填写 ...

  6. H5页面使用微信网页授权实现登录认证

    在用H5开发微信公众号页面应用时,往往需要获取微信的用户信息,H5页面在微信属于访问第三方网页,因此通过微信网页授权机制,来获取用户基本信息,此处需要用户确认授权才能获取,用户确认授权后,我们可以认为 ...

  7. 浏览器打开微信公众号h5页面,增加cookie绕过微信授权登录

    from selenium import webdriver from time import sleepdriver = webdriver.Chrome() #插入cookie需要与cookie相 ...

  8. pc、h5微信授权登录

    pc登录 微信登录(通过后端返回一个qrcode重定向到页面上,进行扫码授权,获取code即可,再根据code获取登录信息) h5登录 微信授权登录:(支持微信浏览器,其它浏览器无法拉起微信的授权): ...

  9. uniapp开发h5微信授权登录(详细教程)

    uniapp开发h5微信授权登录 文章目录 uniapp开发h5微信授权登录 前言 一.前期准备--申请测试账号 二.正式开发--前端代码 三.打包发布 总结 前言 我也是第一次做h5授权微信登录,网 ...

  10. H5 微信授权登录功能实现

    背景 最近几周面试复习以前知识库,刚好博客从国外迁移到国内CSND,同步坐下笔记,梳理之前开发H5 微信授权登录功能获取用户信息数据. H5页面微信授权登录,使用微信官方JSSDK,微信网页授权较为复 ...

最新文章

  1. Swift 中使用 SQLite——查询数据
  2. 虚拟机中LINUX系统的安装
  3. leetCode 50.Pow(x, n) (x的n次方) 解题思路和方法
  4. 按15分钟取数据_【数量技术宅|金融数据分析系列分享】套利策略的价差序列计算,恐怕没有你想的那么简单...
  5. 产品认知:揭秘你不会画产品信息结构图的本质
  6. Android okhttp3使用实例,OKhttp设置请求超时时间,okgo使用demo
  7. 华为或正与联发科、紫光展锐就采购更多芯片事宜展开磋商
  8. 一个工具类实现自定义Tablayout的下划线宽度
  9. php7安装memcached,PHP5.6与PHP7的memcached安装
  10. 让 WAS V6.1 的 JSP 编译器用 JDK5.0
  11. python3使用staf问题_python3 使用时遇到的问题
  12. 数据通路功能——单总线
  13. jqueryUI对应jquery版本
  14. unc0ver 越狱工具来袭,支持iOS11.0~iOS14.8稳定越狱 更新至V8.0.2 支持 A7-A14
  15. 5.15java例题:水仙花 奇偶数 三个和尚 求和 偶数求和 两只老虎 逢七过 减肥案例
  16. gentoo 安装笔记
  17. The bean sellergoods.FeignClientSpecification could not be registered. A bean with that name has a
  18. 解决“此实现不是 Windows 平台 FIPS 验证的加密算法的一部分”
  19. LODOP设置纸张无效问题
  20. 《野兽绅士》总结2——斗士都有自己的全金属外壳

热门文章

  1. Linux批量转图,CMYK转RGB
  2. 从哪里寻找游戏工具集(Game dev toolset)开发的资料?
  3. python 解压zip ,rar 文件及编译错误的解决方法
  4. Kindle Paperwhite3入手20天感受
  5. C++_华氏度转换摄氏度
  6. IPS(入侵防御系统)技术
  7. JN5169 NXP ZigBee PRO 无线网络应用所需的常见操作(一)
  8. F - Ingenuous Cubrency ( UVa 11137 ,立方数之和,递推关系,算法进阶手册)
  9. WebView加载网页不显示图片解决办法
  10. 树莓派python 简介_自己动手实现智能家居之树莓派GPIO简介(Python版)