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

场景及优点

解密第三方登录-微信扫码登录 Java生成二维码_第1张图片

解密第三方登录-微信扫码登录 Java生成二维码_第2张图片

解密第三方登录-微信扫码登录 Java生成二维码_第3张图片

解密第三方登录-微信扫码登录 Java生成二维码_第4张图片

解密第三方登录-微信扫码登录 Java生成二维码_第5张图片

理论基础

理论基础-OAuth2.0

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

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

协议特点:

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

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

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

角色说明

解密第三方登录-微信扫码登录 Java生成二维码_第6张图片

四种授权模式

授权码模式(Authorization Code Grant)

隐式授权模式(Implicit Grant)

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

客户端模式(Client Credentials Grant)

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

解密第三方登录-微信扫码登录 Java生成二维码_第7张图片

二维码

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

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

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

java生成二维码

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

解密第三方登录-微信扫码登录 Java生成二维码_第8张图片

纠错级别

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

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

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

解密第三方登录-微信扫码登录 Java生成二维码_第9张图片

解密第三方登录-微信扫码登录 Java生成二维码_第10张图片

准备工作

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

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

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

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

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

区别

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

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

测试公众号申请

微信公众平台

解密第三方登录-微信扫码登录 Java生成二维码_第11张图片

解密第三方登录-微信扫码登录 Java生成二维码_第12张图片

实现细节

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

解密第三方登录-微信扫码登录 Java生成二维码_第13张图片

解密第三方登录-微信扫码登录 Java生成二维码_第14张图片

解密第三方登录-微信扫码登录 Java生成二维码_第15张图片

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

解密第三方登录-微信扫码登录 Java生成二维码_第16张图片

解密第三方登录-微信扫码登录 Java生成二维码_第17张图片

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

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

解密第三方登录-微信扫码登录 Java生成二维码_第18张图片

解密第三方登录-微信扫码登录 Java生成二维码_第19张图片

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

解密第三方登录-微信扫码登录 Java生成二维码_第20张图片

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

解密第三方登录-微信扫码登录 Java生成二维码_第21张图片

解密第三方登录-微信扫码登录 Java生成二维码_第22张图片

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

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

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

前端页面跳转

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

解密第三方登录-微信扫码登录 Java生成二维码_第23张图片

解密第三方登录-微信扫码登录 Java生成二维码_第24张图片

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

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

解密第三方登录-微信扫码登录 Java生成二维码_第25张图片

你可能感兴趣的:(微信,java,开发语言)