uniapp h5(公众号)微信授权登录

uniapp 如果是按钮登录做一个按钮就好了 如果不是按钮登录 就将代码放在onloadl里面即可

  1. 授权登录页面
    授权按钮
	<button class="wechat-logo" @click="getWeChatCode">微信授权登录</button>

js代码

<script>
export default {data() {return {};},onLoad(option) {},onShow() {// console.log(1112,location.href)},methods: {// 重定向到某个面检查有没有code 重定向的页面为redirect_uri参数页面该也可以是本页面 也可以是其他页眉只是后面的方法不一样了 该参数是后端配置checkWeChatCode() {let code = this.getUrlCode('code');let http = this.getUrlCode('http');console.log(22,code,http,encodeURIComponent(location.href))if(code) {// this.handleToLogin(code)  //该方法如果回调页面是在本页面才使用 我这里的实例没有使用回调页面使用了console.log(23)}}, // 正则匹配请求地址中的参数函数 该方法是获取地址里面的某个参数值的 这里没有使用到 如果你的redirect_uri回调页面是本页面就可以用上 这里我就不删了getUrlCode(name) {return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) ||[, ''])[1].replace(/\+/g, '%20')) || null},// 看地址中有没有code参数,如果没有code参数的话则请求微信官方的接口并获取包含code的回调链接getWeChatCode() {//用于退出登录回来不会再调一次授权登录uni.setStorageSync('wechat_login_tag', 'true');const appID = 'wxe5cb2587e7687259';  //公众号appID// const callBack = 'https%3A%2F%2Fh5.yulinkeji.cn%2Fh5%2Findex.html%23%2Fpages%2Findex%2Findex'; //回调地址 就是你的完整地址登录页const callBack = 'https://h5.yulinkeji.cn/h5/index.html'; //回调地址 就是你的完整地址登录页//通过微信官方接口获取code之后,会重新刷新设置的回调地址【redirect_uri】// window.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' +// 				appID + '&redirect_uri=' + encodeURIComponent(callBack)+   //看后端给你的是否已经转码 转码了就不用encodeURIComponent// 				'&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect'window.location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxe5cb2587e7687259&redirect_uri=https%3A%2F%2Fh5.yulinkeji.cn%2Fh5%2Findex.html%23%2Fpages%2Ftab%2Fmy&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`// location.herf 该url中除了重定向地址,其他的全是官方文档提供。},}
}
</script>

在这里插入图片描述

  1. 跳转后的页面()
    js代码
export default {data() {return {list:[],score:{},id:0,};},onLoad(parm) {console.log('545',window.location)let that =thisthat.cont()// that.jifen()},onShow() {console.log('8')},methods:{// 正则匹配请求地址中的参数函数getUrlCode(name) {return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) ||[, ''])[1].replace(/\+/g, '%20')) || null},cont(){let code = this.getUrlCode('code'); // 截取路径中的code,如果没有就去微信授权,如果已经获取到了就直接传code给后台获取openIdconst local = window.location.href;console.log(343,code)this.handleToLogin(code)},handleToLogin(code) {this.$api.post('/Wxuser/login',{code:code}).then(res => {this.id = res.data.idconsole.log('登录成功',code,res.data,this.id)uni.redirectTo({url: '/pages/tab/index'})})this.jifen()},jifen(){let that = thisif(!that.id){setTimeout(()=>{that.jifen()},2000)}that.$api.post('/Topic/user',{uid:that.id}).then(res=>{that.score = res.data[0]console.log(111,that.score,that.id)})},}}

在这里插入图片描述

很浅薄的描述 ,欢迎各位大佬来指正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/484333.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot指定外部环境配置

nohup java -Xms256m -Xmx512m -Dfile.encodingUTF-8 -jar /usr/local/xxxx.jar --spring.profiles.activeprod > system.log 2>&1 & --spring.profiles.activeprod修改的是多环境配置中内部application.properties里的spring.profiles.active值 -Dspring.config…

十五、随机数和随机颜色

项目功能实现&#xff1a;在原图上进行每隔0.5s随机绘制不同长度不同颜色的线段(保存之前的线段)&#xff0c;在另一个画布上进行绘制随机不同长度不同颜色的线段(不保存之前的线段) 按照之前的博文结构来&#xff0c;这里就不在赘述了 一、头文件 random.h #pragma once#i…

解决Uncaught SyntaxError: Cannot use import statement outside a module(at XXX)报错

报错原因&#xff1a;这个错误通常是因为你正在尝试在一个不支持 ES6 模块语法的环境中使用 import 语句。这可能是因为你的代码是在一个只支持 CommonJS 或 AMD 模块系统的环境中运行的&#xff0c;或者你的代码运行的环境没有正确配置以支持 ES6 模块。如果是在浏览器环境&am…

2024年了,抖店还能做吗?适合新手吗?

我是电商珠珠 现在已经24年了&#xff0c;抖店也已经发展了四年了。其中有很多在门外观望的人&#xff0c;还在犹豫不决。认为抖店发展到今天&#xff0c;所有的红利早已在20年的时候就消失殆尽了&#xff0c;特别是没有经验的如果入驻了&#xff0c;既不能享受平台红利&#…

easyexcel写入long类型数据精度丢失

1. 前言 在使用easyExcel导出Excel中 发现 long类型的数据格式精度丢失了 问题如下 尾数都成了00000 精度发生了丢失 2. 解决 将long类型的字段转成String 写入到Excel中增加解析器 LongStringConverter 例如 /*** 文件导出** param outputStream outputStream* param cla…

运行jar时提示缺少依赖的类

供应商丢过来一个jar&#xff0c;是用Java写的Windows桌面程序&#xff0c;运行jar时提示缺少依赖的类&#xff0c;一看就是打包没带依赖的库&#xff0c;下面是解决方法&#xff1a; 1、解压缩jar&#xff0c;查看 META-INF 目录下的 MANIFEST.MF&#xff0c;看看都引用了哪些…

软考-中级-系统集成2023年综合知识(一)

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 软考中级专栏回顾 专栏…

navicat连接postgresql报错 column “datlastsysoid“ does not exist

column "datlastsysoid" does not exist 是由于pgsql 15版本以后&#xff0c;系统表的列名改了&#xff0c;pg_database表里的这一个列被删除了导致 解决办法&#xff1a; 1、将navicat升级到16.2以上版本 2、降级pgsql 3、修改dll配置文件 找到navicat安装目录…

软件开发工程师,几款常用的APP,你用过几款?最后一个测试网络必备

作为一名程序员&#xff0c;手机里一定有几个常用的app&#xff0c;下面给大家推荐几款。 1. CSDN 国内最大编程论坛&#xff1b;虽然有多少人吐槽现在使用csdn就像屎里淘金&#xff0c; 但是不得不承认他仍然是大家搜索技术资料、问题的首选。 遇到问题打开app搜索&#x…

算法沉淀——穷举、暴搜、深搜、回溯、剪枝综合练习三(leetcode真题剖析)

算法沉淀——穷举、暴搜、深搜、回溯、剪枝综合练习三 01.字母大小写全排列02.优美的排列03.N 皇后04.有效的数独 01.字母大小写全排列 题目链接&#xff1a;https://leetcode.cn/problems/letter-case-permutation/ 给定一个字符串 s &#xff0c;通过将字符串 s 中的每个字…

2024年noc比赛Coding创意编程赛项-创意实验室初赛模拟题

【单选题】 1.角色本来面向的方向是右方,执行下方积木后,角色面向的方向是() A.面向右上方 C.面向左上方 B.面向右下方 D.面向左下方 2.下列选项中关于图中按钮功能说法错误的是() A."本地传”按钮可以从本地电脑上传素材 B."重新画”按钮可以自己设计素材 C"…

typescript映射类型

ts映射类型简介 TypeScript中的映射类型&#xff08;Mapped Type&#xff09;是一种高级类型&#xff0c;它允许我们基于现有类型创建新的类型&#xff0c;同时对新类型的每个属性应用一个转换函数。通过使用映射类型&#xff0c;我们可以方便地对对象的属性进行批量操作&…