今天来复盘代码了 不然这个月过完 我可能脑子里又啥都不剩了 感觉自己跟个金鱼脑一样 十分沧桑

1.首先 要做微信授权登录 你的有一个微信公众号 因为授权登录要配置APPID 以及网页授权域名

这里的网页授权域名真的让我栽了好多的坑一言难尽 啥也不说了 直接上图
公众号的开发 —>基本配置中设置

**接下来在公众号的开发 —>接口权限中设置域名 **
这个域名一定要正确 而且是安全域名 因为不仅代码放在上面 微信授权回调的域名也是这个

在网页服务中的 页面授权用户基本信息中设置 一共可以设置两个 一个开发环境 一个测试环境

设置完就可以开发了 开发前建议看一变官方文档 当然如果没看懂 可以多看几遍 链接我放在这里了
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html#0

然后就是页面了

因为后期我得代码都带了token请求头 所以我写了一个跳转页面

在这个界面拉起授权 授权成功获取到信息之后在跳转到 首页
(ps:我把这个页面放在了pages.json)的第一个 这样一进来就能授权了

废话不多说上代码:

对了请注意下面的那个拉取基本信息的链接中的重定向路径和appid被我隐藏了 请大家自己配置
将URL 及 APPID 替换成自己的即可 至于如何获取请看上面 上面配置的域名就是这里重定向的路径

跳转界面springboard.vue

<template><view class="springboard"><view class="">code:{{res}}</view><view class="">access_token接口:{{result}}</view><view class="">access_token :{{access_token}}<view class="">openid:{{openid}}</view></view><view class="">用户信息 {{userInfo}}</view><!-- 跳板页面   这个界面主要用来 获取缓存的信息 如果没有缓存的信息则跳转去授权 如果有直接跳转去商城界面--></view>
</template><script>export default {data() {return {src:'',result:'',option:'',res:'',userInfo:'',access_token:'',openid:'',index:0};},methods:{getpower() {let url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=URL&response_type=code&scope=snsapi_userinfo&state=STATE&connect_redirect=1#wechat_redirect"window.location.href = url},sendCode(code){uni.showToast({title:code})uni.request({url: 'XXXXXXX/login/login_controller/access_token',method:'POST',data: {code: code},success: (res) => {console.log(res.data);this.result = res.datathis.access_token = this.result.data.access_tokenthis.openid = this.result.data.openiduni.request({url: 'XXXXXXX/login/login_controller/access_user', //仅为示例,并非真实接口地址。method:'POST',data: {access_token:this.access_token,openid: this.openid},success: (respones) => {this.userInfo = responesconsole.log(res.respones);}});    }});},},onLoad(option) {this.option = optionif (option.code == null) {this.getpower()} else {this.res =  option.code// uni.showToast({//    title:option.code// })this.sendCode(option.code)}}}
</script><style lang="less" scoped>
.springboard{height: 99vh;position: relative;text-align: center;background-size: cover;// background-image: url('http://zons.oss-cn-shenzhen.aliyuncs.com/upload/20200703/20200703/1593768723d3eb9a9233e52948740d7eb8c3062d14.jpg');// background-image: url('http://zons.oss-cn-shenzhen.aliyuncs.com/upload/20200703/20200703/1593768995d3eb9a9233e52948740d7eb8c3062d14.jpg');
}
.LoginBtn{width: 50%;border: 1px solid  #409eff;padding:20rpx  ;display: inline-block;background-color: #409eff ;color: #fff;border-radius: 10rpx;
}
</style>

这里说明一下 做授权的时候 无法在线测试 就是说本地的代码无法测试 必须发包放到服务器上测试

所以我把返回值都展示在页面上就知道接口是否有问题了 后期自行屏蔽即可

另外踩了一个巨坑 就是微信授权返回40029 code码失效的问题
查了很多资料 也设置了 好几种方法

最后根据自身情况就是 第一 发包以后到手机端测试 或者在微信开发者工具中测试 注意 就算是微信开发者工具中测试也是跑的线上的代码 其次为了防止发生302不稳定跳转 防止code码失效 我添加了connect_redirect=1

踩坑二:如果在微信开发者工具中运行时出现 response_type 参数错误 那么就是拉起授权的链接有问题了 请重新配置

踩坑三 后端的接口配置的使用到的APPID 要与前端一致

最后说一下两个接口

第一个接口时获取到code码以后 将code码传给后端 后端 用code码获取到 openID 然后可以根据 openID 获取到用户个人信息

这里第二个接口就是根据第一个接口的返回值 获取用户个人信息的 抓到用户信息代表授权成功了
**注意注意注意!!!**请求要使用post

好啦 到这里基本就讲解完毕了 下一篇在具体讲下 踩到的坑以及几种解决方法

希望对大家有用

H5之微信授权登陆 (uniapp网页版微信授权登录)相关推荐

  1. Ubuntu16.04下安装类似于windows下微信软件,非网页版微信(内附安装包和详细安装指令)

    一.下载安装包 安装包下载地址: 链接:https://pan.baidu.com/s/1M8i6mdC952exhyFoLp84rg 提取码:nt5q 然后解压压缩包,获得文件夹如下: 然后进入文件 ...

  2. 简单实用 微信授权登陆(网页版)

    备注:使用该方法前要将你的微信公众号绑定到你的微信开放平台上面 private $APP_ID = 'wx7b2a3-----------' ; //APP_IDprivate $APP_SECRET ...

  3. 网页版微信和微信公共号扫码登陆原理分析

    看到知乎上有关于微信扫码登陆原理的讨论.现将自己的分析结果写出来,供大家参考,不正确的地方望指正. 用户打开网页版微信: https://wx.qq.com/,微信为用户生成了一张包含uuid的二维码 ...

  4. ubuntu安装微信,解决网页版微信不能登陆问题

    1.下载附件deb包wine-wechat_1.0-windows2.8.6_all.deb 2.sudo dpkg -i wine-wechat_1.0-windows2.8.6_all.deb 1 ...

  5. jquery 背景特效实现_html5实现的仿网页版微信聊天界面效果源码

    码农那点事儿 关注我们,一起学习进步 这是一款基于html5实现的仿网页版微信聊天界面效果源码,可实现微信网页版聊天界面效果,在编辑框编辑文字之后按Ctrl+Enter键即可提交文字到聊天对话框上.整 ...

  6. 问题:网页版微信协议如何获取语音消息并播放

    这是一个坑等待解决. 在使用网页版微信协议的过程中发现,是相同地址,通过网页登陆上去后,就能获取并收听到音频,而通过程序的就不行. https://wx.qq.com/cgi-bin/mmwebwx- ...

  7. 网页版微信自动群发消息

    操作步骤: 登陆网页版微信 打开开发者工具 打开 console 控制台 粘贴一下代码到控制台并回车 实现原理 遍历好友列表 修改输入框文本 点击发送 // 拿到所有聊天对象(仅限当前网页上展示的内容 ...

  8. 网页版linux客户端,网页版微信将关闭,Linux开发者哭惨

    原标题:网页版微信将关闭,Linux开发者哭惨 微信目前已经成为了大部分人的通讯方式之一,尤其是在职场人士之间,超过了QQ的地位.而最近微信网页端已经逐渐被关停,部分用户已经出现了无法登陆的情况. 在 ...

  9. python爬虫+网页版微信实时获取消息程序

    项目需求: 目的是24小时爬取各种软件的讯息并且以一种统一的方式集中发送给自己. 实现方法: 利用python的requests库以及wxpy库,前者用来爬取网页,后者用来将爬到的内容发送给自己. 程 ...

  10. 再见,itchat!再见,网页版微信!

    点击上方"编程派",选择设为"设为星标" 优质文章,第一时间送达! 有一个词叫做"三月爬虫",指的是有些学生临到毕业了,需要收集数据写毕业论 ...

最新文章

  1. 50颗传感器、超1亿像素,算力700TOPS,这个自动驾驶平台有点儿炫!
  2. 工作流引擎JFlow与activiti 对比分析(一)5种基本控制流模式的对比
  3. java程序经过编译后会产生byte code_学习廖雪峰的JAVA教程---异常处理(Java的异常)...
  4. oracle10g导入dmp文件恢复,oracle 10g 恢复dmp文件。
  5. 动态规划在求解背包问题中的应用(JAVA)--回溯法、记忆化法
  6. linux 更新软件命令 失败,对linux下软件(库)的更新命令详解
  7. 下岗工人到达退休年龄,养老保险未缴纳满15年,补缴合适吗?
  8. Keras指定GPU训练模式,设置GPU的使用量
  9. ASP.NET页面与IIS底层交互和工作原理详解
  10. 统计学 常用的数据分析方法大总结,推荐收藏
  11. 解决Linux系统下U盘只读文件系统问题
  12. 【笔记】TNT: Target-driveN Trajectory Prediction
  13. python怎么画钟表表盘,python ——钟表,,1、表盘 1 fro
  14. Jointly Extracting Multiple Triplets with Multilayer Translation Constraints [论文研读]
  15. AU降噪 李兴兴
  16. c/c++回车不换行
  17. 主动笔驱动芯片市场现状及未来发展趋势
  18. 对象的属性名和属性值
  19. Qt 自定义(异形)形状按钮封装及实现点击弹跳效果
  20. 移动硬盘安装ubuntu-16.04,疯狂踩坑、分析及解决方法

热门文章

  1. Repository does not allow updating assets 解决方法
  2. Allegro SigXplorer 等长设置方法-比较简单
  3. 做图片用的计算机配置文件,电脑如何显示照片色域为DCI-P3标准的拍摄照片
  4. 35岁老年程序员的绝地翻身之路
  5. 使用typedef定义数据类型
  6. 行人重识别论文阅读6-低分辨率的行人重识别研究
  7. 单播、广播、组播(多播)
  8. libvlc.java_java – LibVlc android无法加载库
  9. 怎么进b站up主的粉丝群
  10. 关于iPhone 5的适配