H5微信授权登录弹窗提示

news2025/1/24 22:38:20

如下图:用户授权登录前,先通过静默授权,拿到token,展示部分信息,用户通过授权后拿到头像昵称,该弹窗让用户有个比较好的体验

1、标签

<template>
	<!--遮罩-->
	<view v-if="showAuth"
		style="background-color:rgb(0 0 0 / 8%);position: fixed;left: 0;top: 0;width: 100%;height: 100%;z-index: 999;"
		@click="handelLogin">
		<view class="author-view">
			<view>
				<image class="author-title-img" src="../../static/img/gologin.gif"></image>
			</view>
			<view>为了让您获得更好浏览体验</view>
			<view>请先进行微信授权</view>
			<view class="author-title-btn">
				<view>去授权</view>
			</view>
		</view>
	</view>

</template>

2、js

<script>
	import tool from '@/common/utils/tool.js'
	export default {
		data() {
			return {
				showAuth: false,
				lastLocal: '',
				isReplace: false
			}
		},
		methods: {
			handelLogin() {
				this.$store.commit('CLEAR_CWZ_USER_INFO')
				const APPID = this.$config.AppId
				var local = window.location.href //tool.local.get('init_local')
				var lastLocal = local
				let strsArr = local.split('?'); //将字符串内容以&分隔为一个数组
				if (strsArr.length >= 2) {
					let str_back = local.substr(local.indexOf('?')); //截取?后面的内容作为字符串
					let strs = str_back.split('#/'); //将字符串内容以&分隔为一个数组
					if (strsArr.length == 2) {
						// lastLocal = strsArr[0] + strs[strs.length - 1]
						var lastStr = strs[strs.length - 1]
						var lastStr_arr = lastStr.split('?')
						if (strs.length >= 2) {
							lastLocal = strsArr[0] + '#/' + strs[strs.length - 1]
						} else {
							lastLocal = strsArr[0] + strs[strs.length - 1]
						}
					} else {
						lastLocal = strsArr[0] + '#/' + strs[strs.length - 1]
					}
				}
//lastLocal :静默授权后回调地址会返回code,当用户同意授权后回调地址还会拼接code,这里将现有路径上的所有的code去掉,再复制给回调地址,以保证code是最新的
				//	this.$store.commit('CLEAR_CWZ_USER_INFO')
				//	this.showAuth = false;//允许授权后关闭授权遮罩
				var loginDate = new Date().getTime()
				tool.local.set('lastLoginDate', loginDate)
				window.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' + APPID +
					'&redirect_uri=' +
					encodeURIComponent(lastLocal) +
					'&response_type=code&scope=snsapi_userinfo&state=1&connect_redirect=1#wechat_redirect'
			},
		},
		onShow() {

		},
		mounted() {
			//授权获取用户信息
			var self = this
			var lastLoginDate = tool.local.get('lastLoginDate') //过期时间戳
			if (lastLoginDate) { // 已登录过,判断是否过期

				var nowDate = new Date().getTime()
				var interval = (nowDate - lastLoginDate) / (60 * 60 * 1000)
				//var interval = (nowDate - lastLoginDate) / (60 * 1000) //测试 大于10秒就算过期
				if (interval >= 24) { // 过期
					//if (interval >= 5) { // 过期
					this.showAuth = true;
					tool.local.del('lastLoginDate')
				} else {
					this.showAuth = false; //允许授权后关闭授权遮罩
				}
			} else { // 没有登录过 且还未重定向
				//this.$store.commit('CLEAR_CWZ_USER_INFO')
				this.showAuth = true;
			}
		}

	}
</script>

 3、css

<style>
	/**底部授权*/
	.author-view {
		position: fixed;
		bottom: 0;
		width: 100%;
		display: flex;
		align-items: center;
		justify-content: center;
		flex-direction: column;
		background: linear-gradient(transparent, #FFF, #FFF, #FFF);
		z-index: 999;
		color: #000;
		padding: 30px 0;
	}

	.author-title-btn {
		background-color: #1373ff;
		color: #fff;
		padding: 10px 70px;
		border-radius: 20px;
		margin-top: 20px;
	}

	.author-title-img {
		width: 50px;
		height: 50px;
		margin-bottom: 10px;
	}
</style>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MD-MTSP:遗传算法GA求解多仓库多旅行商问题(提供MATLAB代码,可以修改旅行商个数及起点)

一、多仓库多旅行商问题 多旅行商问题&#xff08;Multiple Traveling Salesman Problem, MTSP&#xff09;是著名的旅行商问题&#xff08;Traveling Salesman Problem, TSP&#xff09;的延伸&#xff0c;多旅行商问题定义为&#xff1a;给定一个&#x1d45b;座城市的城市集…

开发一个自定义“套壳“浏览器的开源方案

一.项目概述 二.技术选型 三.项目介绍 1.项目地址:​​​​​​https​​​​​​://github.com/keyxh/TLC_Browers 2.项目目录介绍: 3.项目后期 开发语言:VB6 浏览器内核:webview2 项目目的:在vb6调用h5&#xff0c;实现自定义的浏览器 参考资料: https://github.com…

从 Spring 的创建到 Bean 对象的存储、读取

目录 创建 Spring 项目&#xff1a; 1.创建一个 Maven 项目&#xff1a; 2.添加 Spring 框架支持&#xff1a; 3.配置资源文件&#xff1a; 4.添加启动类&#xff1a; Bean 对象的使用&#xff1a; 1.存储 Bean 对象&#xff1a; 1.1 创建 Bean&#xff1a; 1.2 存储 B…

BUUCTF--reverse1,reverse2--WP

文章目录 一.BUUCTF--reverse1二.BUUCTF--reverse2 一.BUUCTF–reverse1 这道题目也是非常简单&#xff0c;主要考察IDA Pro的使用&#xff0c;分析代码&#xff1a; 发现是64位exe&#xff0c;直接拖到IDA Pro中&#xff0c;发现没有找到主函数&#xff1a; 那就直接ShiftF12…

【操作符详解 2023-05-13】

#include <stdio.h>int main() {int a 1;int b 2;int c (a > b, a b 10, a, b a 1);//逗号表达式printf("%d\n", a);printf("%d\n", b);printf("%d\n", c);return 0; }int main() {int arr[10] { 1,2,3,4,5 };// …

等差数列求和,轻松解决力扣“K 个元素的最大和”问题

本篇博客会讲解力扣“2656. K 个元素的最大和”的解题思路&#xff0c;这是题目链接。 先来审题&#xff1a; 以下是输出示例&#xff1a; 以下是提示&#xff1a; 本题有2种思路&#xff0c;一种是直接按照题目所说的方式模拟&#xff0c;另一种是直接使用数学公式。 显然…

STM32f103时钟树详解

一、概述 stm32有四种时钟信号源&#xff0c;HSE(高速外部时钟)、HSI&#xff08;高速内部时钟&#xff09;、LSE&#xff08;低速外部时钟&#xff09;、LSI&#xff08;低速内部时钟&#xff09;。HSE通常接8M晶振&#xff0c;经由内部分频和倍频&#xff0c;最大可得到72MH…

荔枝派Zero(全志V3S)驱动开发之RGB LED灯

文章目录 前言一、硬件连接二、文件 IO 方式操作 GPIO三、编写驱动四、编写应用程序1、V1 版本&#xff0c;实现蓝灯亮灭2、V2 版本&#xff0c;实现蓝灯闪烁 五、编译六、运行测试七、资源自取方式1&#xff1a;github 链接方式2&#xff1a;百度网盘 前言 一、硬件连接 查看…

绝~ 阿里内部“Java进阶必备宝典”,理论到实战,一键通关

前言 作为一名Java方向的程序员&#xff0c;打好夯实的基础是非常重要的&#xff0c;现在大厂面试对于程序员基础知识的掌握考察也越来越严格&#xff0c;虽然说现在技术更新比较快&#xff0c;但基础扎实才能够更深入的去理解每一个知识技术点。 关于Java程序员如何筑基&…

实现“省市县的联动”

分析&#xff1a;实现这一功能需要发送三次Ajax请求 1.第一次请求&#xff1a;是页面加载完毕之后&#xff0c;发送一次Ajax请求&#xff0c;查询出所有的省级单位&#xff0c;将这些查询结果展示在<select>标签中。 2.第二次请求&#xff1a;当所选省级单位发生变化的时…

java工程构建时带上分支,commit等信息

背景&#xff1a; 线上部署的jar包&#xff08;不管是直接运行jar包&#xff0c;还是通过容器运行的jar&#xff09;有时出现问题时需要查看源代码&#xff0c;需要知道该jar包是从哪个分支、哪个commit、哪个时间打包的。 有了这些信息能更好辅助我们分析判断问题。 这里以gr…

【.NET基础加强第九课--事件】

.NET基础加强第九课--事件 Event 关键字委托,事件对比举例: 音乐播放事件用户对象&#xff0c;登录程序集反射 Event 关键字 委托,事件对比 委托是一种数据类型&#xff0c;可以用调用。 事件:对象&#xff08;对委托的一种封闭装&#xff09;。只能在类内部&#xff0c;只能…

基于Java的企业员工管理系统的设计与实现(论文+源码)_kaic

基于Java的企业员工管理系统的设计与实现 摘 要 随着电子信息的飞速发展&#xff0c;计算机已经融入到了生活的各个方面&#xff0c;越来越多的企业开始使用电子计算机来对企业进行管理&#xff0c;信息化的时代已经到来&#xff0c;各个企业无论大小都需要一个信息化的管理系…

模拟实现qsort函数(采用冒泡排序的方式)

前言&#xff1a; 之前我在C语言&#xff1a;指针详解【进阶】后篇中提到了qsort函数,qsort函数作为一个库函数&#xff0c;在我们日常的代码编写中可能会用到&#xff0c;在上面提到的文章中我们也进行使用了这个函数&#xff0c;大家也了解了一些这个函数的使用方法&#xff…

English Learning - L3 作业打卡 Lesson1 Day4 2023.5.8 周一

English Learning - L3 作业打卡 Lesson1 Day4 2023.5.8 周一 引言&#x1f349;句1: They may say they are red hot about something unfair.成分划分弱读连读爆破语调 &#x1f349;句2: When they are red hot, they are very angry about something.成分划分弱读连读爆破语…

【Ansys】mechanical和fluent求解器中使用的迭代方法-待补充

一、mechanical求解器 这个求解器&#xff0c;在网上很容易查到&#xff0c;迭代求解时用的就是牛顿-拉夫逊方法&#xff08;Newton-Raphson&#xff09;。 这是因为牛顿法求解非线性问题非常优秀。 而mechanical使用这个方法就能实现对几何非线性、材料非线性、接触非线性、…

Java入门和背景知识

文章目录 &#x1f525;常见编程语言介绍&#x1f525;Java 发展史&#x1f525;Java 的核心优势&#x1f525;Java 各版本的含义&#x1f525;Java 的特性和优势&#x1f525;Java 运行机制&#x1f525;JVM、JRE 和 JDK&#x1f525;Java 开发环境搭建&#x1f525;openJDK 和…

网络购物商场系统的设计与实现(论文+源码)_kaic

网络购物商场系统 摘 要 近年来&#xff0c;随着网络购物的兴起和普及&#xff0c;针对该市场需求开发一款在线购物系统是大势所趋。和实体店对比&#xff0c;在线购物系统商品种类齐全&#xff0c;价格优惠、还能够送货上门等优势。在此类系统中&#xff0c;用户能够在网上…

潍坊这一城市商业综合体有奖征名

云创金谷项目商业购物中心名称及IP形象征集开始啦&#xff01;&#xff01;你有什么好想法&#xff1f;快来参与吧&#xff01;&#xff01; 云创金谷&#xff0c;是奎文区重点打造的城市更新代表力作&#xff0c;位于文化路以东、新华路以西&#xff0c;北宫街以北、卧龙东街以…

如何在vue中使用dayjs修改日历组件的星期名称

在vue中使用日历组件Calendar时&#xff0c;头部的星期默认展示为[日, 一, 二, 三, 四, 五, 六]&#xff0c;如下图所示。 如何改变头部的星期展示呢&#xff0c;可以通过以下方法实现&#xff1a; const weekdaysShort [周日, 周一, 周二, 周三, 周四, 周五, 周六]; dayjs.l…