解密第三方登录-微信扫码登录 Java生成二维码

场景及优点

理论基础

理论基础-OAuth2.0

OAuth(Open Authorization)是一个关于授权(authorization)的开放网络标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方。

OAuth在全世界得到广泛应用,目前的版本是2.0版。

协议特点:

简单:不管是OAuth服务提供者还是应用开发者,都很易于理解与使用;

安全:没有涉及到用户密钥等信息,更安全更灵活;

开放:任何服务提供商都可以实现OAuth,任何软件开发商都可以使用OAuth;

角色说明

四种授权模式

授权码模式(Authorization Code Grant)

隐式授权模式(Implicit Grant)

用户名密码模式(Resource Owner Password Credentials Grant)

客户端模式(Client Credentials Grant)

授权码模式是OAuth2目前最安全最复杂的授权流程

二维码

二维码 (dimensional barcode) ,又称二维条码,是在一维条码的基础上扩展出的一种具有可读性的条码。设备扫描二维条码,通过识别条码的长度和宽度中所记载的二进制数据,可获取其中所包含的信息

总之:二维码是信息的载体

例如:将黑马程序员的网址写入二维码,扫描二维码就可以打开官网

java生成二维码

Hutool是一个Java工具包类库,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类。

纠错级别

L、M、Q、H 由低到高。

低级别的像素块更大,可以远距离识别,但是遮挡就会造成无法识别

高级别则相反,像素块小,允许遮挡一定范围,但是像素块更密集

准备工作

准备工作-账号申请
扫码登陆微信有两种实现方式

1.基于微信公众平台的扫码登录

让第三方应用投入微信的怀抱而设计的,这第三方应用指的是比如android、ios、网站、系统等;

2.基于微信开放平台的扫码登录

为了让程序员小伙伴利用微信自家技术(公众号、小程序)开发公众号、小程序而准备的。

区别

微信开放平台需要开企业认证才能注册。

微信公众平台需要认证微信服务号,才能进行扫码登录的开发。只需申请一个公众号。

测试公众号申请

微信公众平台

实现细节

实现细节-第一步:用户同意授权,获取code

实现细节-第二步:通过code换取网页授权access_token

公众号可通过下述接口来获取网页授权access_token。如果网页授权的作用域为snsapi_base,则本步骤中获取到网页授权access_token的同时,也获取到了openid,snsapi_base式的网页授权流程即到此为止。

尤其注意:由于公众号的secret和获取到的access_token安全级别都非常高,必须只保存在服务器,不允许传给客户端。后续刷新access_token、通过access_token获取用户信息等步骤,也必须从服务器发起。

实现细节-第三步:刷新access_token(如果需要)

实现细节-第四步:拉取用户信息(需scope为 snsapi_userinfo)

实现细节-第五步:保存本地会话

获取到用户授权的信息后,需要保存在应用端,防止频繁需要用户授权

本地会话实现方式可用:Redis+cookie、JWT等常用技术

前端页面跳转

程序员各阶段应该掌握的技术与能力

非常感谢您阅读到这里,创作不易!如果这篇文章对您有帮助,希望能留下您的点赞👍 关注💖 收藏 💕评论💬感谢支持!!!

听说 三连能够给人 带来好运!更有可能年入百w,进入大厂,上岸

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软工菜鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值