oauth2.0授权码模式详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oauth2.0授权码模式详解相关的知识,希望对你有一定的参考价值。

参考技术A 第一步,A 网站提供一个链接,用户点击后就会跳转到 B 网站,授权用户数据给 A 网站使用。下面就是 A 网站跳转 B 网站的一个示意链接。

上面 URL 中, response_type 参数表示要求返回授权码( code ), client_id 参数让 B 知道是谁在请求, redirect_uri 参数是 B 接受或拒绝请求后的跳转网址, scope 参数表示要求的授权范围(这里是只读)。

第二步,用户跳转后,B 网站会要求用户登录,然后询问是否同意给予 A 网站授权。用户表示同意,这时 B 网站就会跳回 redirect_uri 参数指定的网址。跳转时,会传回一个授权码,就像下面这样。

上面 URL 中, code 参数就是授权码。

第三步,A 网站拿到授权码以后,就可以在后端,向 B 网站请求令牌。

上面 URL 中, client_id 参数和 client_secret 参数用来让 B 确认 A 的身份( client_secret 参数是保密的,因此只能在后端发请求), grant_type 参数的值是 AUTHORIZATION_CODE ,表示采用的授权方式是授权码, code 参数是上一步拿到的授权码, redirect_uri 参数是令牌颁发后的回调网址。

第四步,B 网站收到请求以后,就会颁发令牌。具体做法是向 redirect_uri 指定的网址,发送一段 JSON 数据。

上面 JSON 数据中, access_token 字段就是令牌,A 网站在后端拿到了。

2.1 创建pom.xml

2.2 创建springsecurity配置文件

2.3 创建UserService实现UserDetailService接口

2.4 创建认证服务

2.5 创建资源服务

2.6启动服务访问地址

http://localhost:8080/oauth/authorize?response_type=code&client_id=admin&redirect_uri=http://www.baidu.com&scope=all

2.7上一步连接跳转到输入用户名和地址

2.8 点击允许受访问的资源,跳转到授权网站( http://www.baidu.com ),获取授权码

2.9 打开postman,填入下面内容获取token

2.10 通过token访问授保护的资源

以上是关于oauth2.0授权码模式详解的主要内容,如果未能解决你的问题,请参考以下文章

oauth2.0授权码模式详解

OAuth2.0系列之授权码模式实践教程

#yyds干货盘点# OAuth2.0授权码模式实战

一图搞定Oauth2.0授权码模式

Springboot2.0 + OAuth2.0之授权码模式

OAuth2.0 - 介绍与使用 及 授权码模式讲解