当前位置: 首页 > 网络应用技术

Spring Boot + Oauth2.0实现微信扫描代码登录,称为优雅

时间:2023-03-08 12:02:51 网络应用技术

  微信打开平台:微信扫描代码登录功能

  官方文档:https://edevelvenders.weixin.qq.com/doc/oplatform/website_app/wechat_login/wechat_login.html

  微信OAuth2.0授权登录名来让微信用户使用微信身份登录到第三方应用程序或网站。在Wechat用户授权登录到已连接到Wechat Oauth2.0的第三党应用程序之后,第三派对可以通过access_token获得用户界面呼叫凭证(access_token),您可以执行Wechat Open Platform Platform授权关系接口调用,以获取微信用户的基本开放信息并帮助用户实现基本的开放功能。Wechatoauth2.0有权登录以支持授权_code模式,该模式适用于服务器的应用程序授权。此模式是:

  ①第三方启动了微信许可登录请求。在允许微信用户授权第三方应用程序授权后,微信将把申请提取或重定向到第三部分网站,并带上授权临时账单的代码参数;

  ②通过代码参数添加appid和appsecret,然后将API交换为access_token;

  ③使用access_token执行接口调用以获取用户的基本数据资源或帮助用户实现基本操作。

  步骤1:请求代码

  在第三方使用网站申请授权之前,请注意获取相应的网页授权域(scope = snsapi_login),您可以通过PC END打开以下链接:https://open.weixin.qq.com/connect/QRCONNECT?appid?= appid&redirect_uri = redirect_uri&wendesp_type = code&scope = scope&state = state#etate#wechat_redirect

  返回指令

  用户允许授权后,它将被重定向到redirect_uri的URL并带上代码和状态参数

  如果禁止用户,代码参数将不会被带回向后,并且只会带来状态参数

  例如:登录到第1商店网站后,打开了https://passport.yhd.com/wechat/login.do,一号将生成状态参数,跳到https://open.qq.com/connectto https://passport.yhd.com/wechat/callback.do?code=Code&state=3d6Be0a4039573b0481624a415e

  步骤2:通过代码获取Access_Token

  通过代码获取Access_Token

  https://api.weixin.qq.com/sns/oauth2/access_token?appid=Appid&secr;

  返回指令

  正确返回:

  错误返回示例示例:

  1. AppSecret是使用应用程序接口的关键。泄漏后,可能会引起高风险后果,例如数据泄漏和用户数据泄漏的应用;存储在客户身上的可能会被恶意被盗(例如,以获取应用程序的反复计算);

  2. Access_Token授权凭证(等效于用户登录状态),以授权用户授权第三党应用程序。它存储在客户端。在恶意获取Access_Token之后,用户数据泄漏和用户相关的接口功能被恶意启动;

  3. REFRESH_TOKEN是为用户授权第三方应用程序的长期凭证。它仅用于刷新access_token,但相当于泄漏后的access_token泄漏。

  建议将秘密和用户数据(例如Access_Token)放在App Cloud Server上,以及来自Cloud Transit口的请求

  步骤3:通过access_token调用接口

  获得访问权限后,进行接口调用。有以下前提:

  对于接口范围(范围),可以称为接口如下:

  因为微信打开平台的苹果和应用程序以及微信公共平台的appid和appsecret是不同的,因此您需要对其进行配置:

  请求路径:在浏览器中打开

  2fheng.nat300.top%2fsell%2fwechat%2fqruserinfo

  获取openID:openID = O9AREV7XR22ZUK6BTVQW82BB6AFK

  ①将在上一步中获得的OpenID留在数据库中

  编辑

  切换到中心

  添加图片注释,不超过140个字(可选)

  ②在授权后将跳跃地址更改为登录地址

  snsapi_login&state = http%3A%2fheng.nat300.top%2fsell%2fqruserinfo

  第三个应用程序请求使用微信扫描代码登录而不是使用本网站的密码:

  用户同意在授权后登录第三方应用程序的背景管理系统:

  拦截和未传递的登录检查,让它跳到登录页面,扫描代码登录

  PS:防止本文被发现无法找到本文。