H5使用微信OAuth2.0授权登录,并实现内网调试。

这篇具有很好参考价值的文章主要介绍了H5使用微信OAuth2.0授权登录,并实现内网调试。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

h5微信授权登录的微信配置,微信,小程序,node.js,html5,前端

H5实现微信授权登录的流程不在过多赘述官方文档传送门,下面直接上如何在开发状态下实现授权登录调试。

1.准备工作。

  1. 微信公众号的开发权限,配置后续会讲。
  2. 内网穿透工具。
  3. 一个node服务点这里koa2快速搭建,传送门。

2.公众号配置

h5微信授权登录的微信配置,微信,小程序,node.js,html5,前端
如图所示点击网页授权域名设置
h5微信授权登录的微信配置,微信,小程序,node.js,html5,前端
将这个文件txt下载到本地,下面的域名就是回调域名,可以为http协议。

3.node服务配置

const Router = require('koa-router');
const router = new Router({
    prefix: '/',
});
router.get('这个就是下载的文件名包括文件格式名', async (ctx, next) => {
    ctx.type = 'text';
    ctx.body = '文件里面的内容';
});
router.get('call_back', (ctx) => {
//重定向到code获取页面
ctx.redirect(`H5项目穿透外网地址/#/H5项目空白页面路由?code=${ctx.query.code}`);
});

module.exports = router;

4.H5登录实现

  1. 点击登录跳转微信授权页面,利用window.location.href,代码如下:
window.location.href =
				'https://open.weixin.qq.com/connect/oauth2/authorize?appid=公众号appid&redirect_uri=自己起的node服务穿透后的外网地址/call_back&response_type=code&scope=snsapi_userinfo&state=STATE%23wechat_redirect';
  1. 跳转到空白页面获取的逻辑,代码如下:
<template>
	<view></view>
</template>

<script>
export default {
	data() {
		return {};
	},
	methods: {
		loginForH5(code) {
			//微信登录H5
			auth.H5login({ code})
				.then(res => {
					if (res.accessToken) {
						this.$store.commit('SET_LOGIN', true);
						uni.setStorageSync('accessToken', res.accessToken);
					}
				})
				.catch(({ data, status }) => {
					console.log('h5err-------->', status, data);
						uni.showToast({
							icon: 'error',
							title: '出现未知错误!',
							duration: 1000,
							success: () => {
								uni.switchTab({
									url: '/pages/home/index',
									fail: e => {
										console.error(e);
									}
								});
							}
						});
				});
		},
		//获取链接参数
		urlPamras() {
			let url = window.document.location.href.toString(); //获取的完整url
			let u = url.split('?');
			if (typeof u[1] == 'string') {
				u = u[1].split('&');
				let get = {};
				for (let i in u) {
					let j = u[i].split('=');
					get[j[0]] = j[1];
				}
				return get;
			} else {
				return {};
			}
		}
	},
	onLoad() {
		const code = this.urlPamras()['code'];
		console.log('授权回调--------------', code);
		if (code) {
			this.loginForH5(code);
		} else {
			uni.showToast({
				icon: 'error',
				title: '出现未知错误!',
				duration: 1000,
				success: () => {
					uni.switchTab({
						url: '/pages/home/index',
						fail: e => {
							console.error(e);
						}
					});
				}
			});
		}
	}
};
</script>

5.外网穿透

h5微信授权登录的微信配置,微信,小程序,node.js,html5,前端

最后

总的思路就是:
H5穿透拿到本地服务的外网地址——>node本地服务穿透外网地址——>node服务接收TX授权code——>重定向到H5外网地址

主要不想一天老发布测试H5,然后把后端惹毛了。无奈之举,原创不易,点赞加收藏。文章来源地址https://www.toymoban.com/news/detail-600555.html

到了这里,关于H5使用微信OAuth2.0授权登录,并实现内网调试。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在CSDN学Golang场景化解决方案(OAuth2.0授权登录)

    OAuth 2.0 是一种用于授权的开放标准,可以让用户授权第三方应用程序访问他们存储在另一个服务提供商上的资源,例如图片、文本等。下面是 OAuth 2.0 协议的流程: 第三方应用程序向认证服务器请求授权。 认证服务器验证用户身份并生成一个访问令牌。 第三方应用程序使用

    2024年02月15日
    浏览(23)
  • Spring Boot 中如何使用 Spring Security OAuth2 来实现单点登录

    在现代 Web 应用程序中,单点登录(Single Sign-On,简称 SSO)是一个非常重要的功能。Spring Security OAuth2 是 Spring Security 框架的一个扩展,它提供了一种简单的方式来实现 SSO。在本文中,我们将介绍如何在 Spring Boot 应用程序中使用 Spring Security OAuth2 来实现单点登录。 在开始之前

    2024年02月06日
    浏览(30)
  • SpringBoot 如何使用 OAuth2 进行认证和授权

    OAuth2 是一种授权框架,可以用于实现第三方应用程序访问用户资源的安全性。在 SpringBoot 中,我们可以使用 Spring Security 和 Spring OAuth2 来实现 OAuth2 的认证和授权功能。本文将介绍如何在 SpringBoot 中使用 OAuth2 进行认证和授权。 在开始介绍如何使用 OAuth2 进行认证和授权之前,

    2024年02月13日
    浏览(24)
  • H5页面实现微信授权登录

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

    2023年04月08日
    浏览(29)
  • Spring Security oauth2.0微信小程序登录

    微信小程序前期开发准备,可以参考这篇文章微信小程序前期准备 1、学习过Spring Secrity oauth2.0的都知道,他有四种登录模式可以选择 authorization code(授权码模式) implicit(简化模式) resource owner password credentials(密码模式) client credentials(客户端模式) 前三种模式都需要用

    2024年02月10日
    浏览(35)
  • SpringCloud整合spring security+ oauth2+Redis实现认证授权

    在微服务构建中,我们一般用一个父工程来通知管理依赖的各种版本号信息。父工程pom文件如下: 在SpringCloud微服务体系中服务注册中心是一个必要的存在,通过注册中心提供服务的注册和发现。具体细节可以查看我之前的博客,这里不再赘述。我们开始构建一个eureka注册中

    2024年02月06日
    浏览(41)
  • Spring Cloud Gateway 整合OAuth2.0 实现统一认证授权

    Spring Cloud Gateway 整合OAuth2.0 实现统一认证授权 GateWay——向其他服务传递参数数据 https://blog.csdn.net/qq_38322527/article/details/126530849 @EnableAuthorizationServer Oauth2ServerConfig 验证签名 网关服务需要RSA的公钥来验证签名是否合法,所以认证服务需要有个接口把公钥暴露出来 接下来搭建网

    2024年02月13日
    浏览(27)
  • 【OAuth2】OAuth2概述及使用GitHub登录第三方网站

    我们在浏览器上可以访问成百上千个网站,使用每个网站的服务一般都要先注册账号,那么我们为了更好地记忆,一般都会在多个网站使用相同的账号和密码进行注册。那么问题就来了,如果在你注册的网站中有某些个网站的系统设计不够严谨和安全,数据库的用户信息使用

    2024年01月19日
    浏览(42)
  • Gateway+Springsecurity+OAuth2.0+JWT 实现分布式统一认证授权!

    目录 1. OAuth2.0授权服务 2. 资源服务 3. Gateway网关 4. 测试   在SpringSecurity+OAuth2.0 搭建认证中心和资源服务中心-CSDN博客 ​​​​​​ 基础上整合网关和JWT实现分布式统一认证授权。   大致流程如下: 1、客户端发出请求给网关获取令牌 2、网关收到请求,直接转发给授权服务

    2024年01月24日
    浏览(38)
  • Oauth2使用postman登录获取token

    网关请求拦截-(CheckJwtFilter.java) 网关配置把获取到的token存入redis-(GatewayConfig.java)它是把我们访问网关的路由转发到授权微服务 授权服务认证配置-(AuthorizationConfig.java) 授权服务安全配置-(WebSecurityConfig.java) 授权服务登录-(UserDetailsServiceImpl.java) 授权服务启动类-(AuthServerApplicatio

    2023年04月08日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包