uniapp开发h5微信授权登录


文章目录

  • uniapp开发h5微信授权登录
  • 前言
  • 一、前期准备--申请测试账号
  • 二、正式开发--前端代码
  • 三、打包发布
  • 总结

前言

我也是第一次做h5授权微信登录,网上找了很久,基本差不多做法,但是不太适用于我的流程。

公众号官方文档:https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html
绝大部分的可以参考文章:https://blog.csdn.net/anjignren/article/details/126176449
如果想了解具体的,可以看这位博主的,我觉得写的很详细:https://www.cnblogs.com/0201zcr/p/5131602.html

实现步骤:

1.用户关注微信公众账号。

2.微信公众账号提供用户请求授权页面URL。

3.用户点击授权页面URL,将向服务器发起请求

4.服务器询问用户是否同意授权给微信公众账号(scope为snsapi_base时无此步骤)

5.用户同意(scope为snsapi_base时无此步骤)

6.服务器将CODE通过回调传给微信公众账号

7.微信公众账号获得CODE

8.微信公众账号通过CODE向服务器请求Access Token

9.服务器返回Access Token和OpenID给微信公众账号

10.微信公众账号通过Access Token向服务器请求用户信息(scope为snsapi_base时无此步骤)
  
11.服务器将用户信息回送给微信公众账号(scope为snsapi_base时无此步骤)


一、前期准备–申请测试账号

微信扫一扫进去之后的页面,可以把测试账号的信息保存下来,接下来会使用到。


翻到底下,扫码关注

接下来,选择公众号网页项目,

输入地址测试

测试地址 这样获取
可以看官网的:https://uniapp.dcloud.net.cn/collocation/manifest.html#h5-template
1.根目录下新建一个template.h5.html文件,复制粘贴直接用(看个人,我没有用到)

<html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title><%= htmlWebpackPlugin.options.title %></title><!-- Open Graph data --><!-- <meta property="og:title" content="Title Here" /> --><!-- <meta property="og:url" content="http://www.example.com/" /> --><!-- <meta property="og:image" content="http://example.com/image.jpg" /> --><!-- <meta property="og:description" content="Description Here" /> --><script>var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel="stylesheet" href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css" /></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id="app"></div><!-- built files will be auto injected --></body>
</html>

2、配置mainifest.json

3.在运行到浏览器,将地址复制出来,到微信开发者工具中使用

测试的时候是可以这样操作的,但是正式使用的时候根本不需要用到这些,appID后端都会给我们,看个人公司了

二、正式开发–前端代码

在uniapp 项目中新建一个登录授权页面,开始写我们的代码部分。 如果你的流程跟我一样,代码如下,可以拿过去直接用,换下接口就行:
需要注意的是code只有使用一次,不能重复使用,在开发的过程中可能会遇到这种问题,导致流程走不通

<template><view></view>
</template><script>
// h5 使用控制台打log 得先npm install vconsole
import Vconsole from 'vconsole';
export default {data() {return {code:'',state:''}},onLoad() {let vConsole = new Vconsole();this.state = this.getUrlCode('state')this.checkWeChatCode(this.code)},methods: {checkWeChatCode() {// 页面一进来先判断是否有codethis.code = this.getUrlCode('code')if (this.code) {// 如果有,走登记接口this.getLogin(this.code)} else {// 没有调后端接口获取地址let params = {url:window.location.href,//当前页面的详细地址state:this.state,authType:0}xxxx(params).then(res => {if(res.data.code == 0){window.location.href = res.data.message}else {this.$u.toast(res.data.message)}})// 根据需求使用 this.getCode()}},getUrlCode (name) {return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ''])[1].replace(/\+/g, '%20')) || null},// 获取code// getCode () {//     window.location.href = //  'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' + this.appID +//  '&redirect_uri=' + encodeURIComponent(this.callBack) +//   '&response_type=code&scope=snsapi_userinfo&state=' + this.state + '#wechat_redirect';// redirect_uri是授权成功后,跳转的url地址,微信会帮我们跳转到该链接,并且通过?的形式拼接code,这里需要用encodeURIComponent对链接进行处理。// 如果配置参数一一对应,那么此时已经通过回调地址刷新页面后,你就会再地址栏中看到code了。// https://test.yuruantong.com/pages/loginAndRegister/login/loginH5?code=0312nn200ADR1P1BYh100zp2VL32nn2f&state=1// },//登录async getLogin(value){let params = {code:value,wechartState:this.state}const res = await xxxx(params)if(res.data.code != 0){this.$u.toast(res.data.message)return;}if(res.data.rows[0].code == 1){let obj = res.data.rows;obj.push({wechartState:this.state})let arr = {params:obj,isShow:true}uni.redirectTo({url: '/pages/loginAndRegister/login/login?params=' + JSON.stringify(arr)})}else if(res.data.rows[0].code == 2){ //res.data.rows 返回的是token 跳转对应的页面uni.setStorageSync('userInfo',res.data.rows[0].loginUserVO);uni.redirectTo({url:'/landlord/home/index/index'})}else{}}}
}
</script>
<style>
</style>

以上是我详细的使用流程,亲测有效

三、打包发布

1.官网地址:https://hellouniapp.dcloud.net.cn

2.选择红框圈出来的

  1. 然后出现弹框,填写网站域名

4.然后打包成功,保存于 unpackage 目录,交给后端部署即可。


总结

第一次做,感觉很迷茫,不知道如何下手,疯狂百度,看了都是差不多的实现方式,结果到我这的流程不对,有些我不太需要。所以这一次给我的感觉就是因为自己不会,看别人写的东西束缚了我的想法,觉得就是应该这样做的。
你们可以作为参考,我觉得是有用的,亲测有效。

uniapp开发h5微信授权登录(详细教程)相关推荐

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

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

  2. uni app和php开发微信登录代码,uniapp如何实现微信授权登录

    uniapp实现微信授权登录的方法:首先获取对应的appid和appsecret:然后在uniapp项目的manifest.json中进行APP SDK配置和模块权限配置.最后实现编码. 本教程操作环 ...

  3. 微信鉴权服务器地址,微信开发之微信授权登录

    本篇教程探讨了微信开发之微信授权登录,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. < 应用场景是:用Hbuilder打包app,在app中点击微信授权登录或者某一操作, ...

  4. H5微信授权登录后点击返回出现循环登录无法退出问题

    简单介绍h5微信授权流程 1.入口页跳转到我们自己创建的空白授权页 2.在空白授权页判断url上是否包含code,没有code拼接微信授权链接,通过location.href进行跳转 location ...

  5. pc、h5微信授权登录

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

  6. H5微信授权登录弹窗提示

    如下图:用户授权登录前,先通过静默授权,拿到token,展示部分信息,用户通过授权后拿到头像昵称,该弹窗让用户有个比较好的体验 请求过程如下: 1.首次在没有UID.code的情况下:静默授权(&am ...

  7. uniapp - 超详细的 H5 公众号网页微信登录示例代码,提供从 0-1 公众号配置及详细注释代码(站在新手小白的角度)第三方微信授权登录的实现!!

    介绍 目前示例是 "点击按钮登录",你也可以改为 "一进页面就登录" ,可随意改造. 百度的教程都太乱了,而且功能都有一定问题.本文主要讲解 uniapp H5 ...

  8. uniapp获取微信授权登录和手机号一键登录(保姆教程)

    uniapp获取微信授权登录(保姆教程) 第一步 下载官方给的解密文件'mWXBizDataCrypt' 没有文件就复制该文件的代码创建一个 var crypto = require('crypto' ...

  9. node.js实现微信授权登录,最详细最简单小白教程。。

    使用到的中间件,如已安装请忽略 npm install express -g npm install request --save 首先想要微信授权,必须注册的有公众号,进入微信公众号平台-开发-开发 ...

最新文章

  1. 编写程序实验两个数的加减结果的判断_实验一 两个多字节数的加减运算 -
  2. 重磅!我国建成首个自动驾驶封闭高速公路测试环境
  3. 求变量的数据类型,typeid,bool,C和C++的不同,new和delete,C++中的枚举,inline和可变参数模板,auto和函数模板,宽字符
  4. 边缘提取和场景分割 学派?
  5. 按钮旁边加一个提示_地铁站的那些“红色按钮”,你知道是干啥用的吗?乱按可能被拘留...
  6. Mybatis逆向工程使用方法
  7. 笨办法学 Python · 续 练习 0:起步
  8. linux通过dd命令把分区,linux dd命令使用详解
  9. Unix 激荡 50 年:驱动 Android、iOS 的操作系统是如何从失败开始的?
  10. c# 提取程序中的资源文件 .exe .resources .resx
  11. 8051单片机Proteus仿真与开发实例-RS485协议通信仿真
  12. 计算机维修管理平台软件,美萍电脑行业管理软件(电脑业务管理系统、电脑维修管理系统、组装业务、电脑装机管理软件)--管理软件,美萍是专家!...
  13. python不定积分教学_python 求定积分和不定积分示例
  14. 生成对抗网络(六)----------Image Denoising Using a Generative Adversarial Network(用GAN对图像去噪)
  15. Kaggle Titanic 数据分析
  16. 清华化学北航学计算机怎么选填志愿,2017年清华、北航多校采用大类招生,高考志愿该如何填报?...
  17. 计算机本科毕业要求,计算机本科毕业论文要求.doc
  18. 在树莓派中Linux环境下rpm包的安装
  19. mongodb每秒写入量_OPPO百万级高并发MongoDB集群性能数十倍提升优化实践
  20. 中控考勤机日期混乱,解决日期显示问题

热门文章

  1. 匿名飞控码STM32版代码整理之Ano_AttCtrl.c
  2. 单模光纤与多模光纤的实际使用
  3. 再阿里云服务器卸载安骑士并且屏蔽云盾
  4. Opencv实现击中击不中
  5. 2022下半年软件设计师中级考试通过
  6. 面向产品的新一代端到端唤醒框架 wekws 正式发布
  7. (java)2的幂次方
  8. 单位调岗不能正常主张的原因解析
  9. 中小园区网配置案例 超详细
  10. C. Equalize