商城项目---畅购chapter09(第九天)

第9章 Spring Security Oauth2 JWT

这章得内容还是比较有意思得,可以快速得理解第三方得登录得原理

商城项目---畅购chapter09(第九天)

商城项目---畅购chapter09(第九天)

商城项目---畅购chapter09(第九天)

商城项目---畅购chapter09(第九天)

商城项目---畅购chapter09(第九天)

商城项目---畅购chapter09(第九天)

商城项目---畅购chapter09(第九天)

 

商城项目---畅购chapter09(第九天)

商城项目---畅购chapter09(第九天)

商城项目---畅购chapter09(第九天)

导入oautho2的工程

商城项目---畅购chapter09(第九天)

可以看到导包有出现了maven冲突

商城项目---畅购chapter09(第九天)

在autho2的pom坐标中的父工程名字要进行修改

商城项目---畅购chapter09(第九天)

商城项目---畅购chapter09(第九天)

可以看到他这个报错得原因都是因为项目中的地方使用得都是下划线_而不是中划线-,修改之后就全部正常了

商城项目---畅购chapter09(第九天)

配置文件得IP要修改

 

商城项目---畅购chapter09(第九天)

商城项目---畅购chapter09(第九天)

公钥加密,私钥解密==非对称加密

商城项目---畅购chapter09(第九天)

商城项目---畅购chapter09(第九天)

http://localhost:9200/oauth/authorize?client_id=changgou&response_type=code&scop=app&redirect_uri=http://localhost

回车之后

商城项目---畅购chapter09(第九天)

跳转到授权界面

商城项目---畅购chapter09(第九天)

 

获取授权码

商城项目---畅购chapter09(第九天)

发送请求

商城项目---畅购chapter09(第九天)

响应成功

商城项目---畅购chapter09(第九天)

进行令牌校验

http://localhost:9200/oauth/check_token?token= [access_token](替换未自己请求得令牌)

商城项目---畅购chapter09(第九天)

刷新令牌:刷新令牌是当令牌快过期时重新生成一个令牌,它于授权码授权和密码授权生成令牌不同,刷新令牌不需要授权码 也不需要账号和密码,只需要一个刷新令牌、客户端id和客户端密码。

测试如下: Posthttp://localhost:9200/oauth/token

参数:

grant_type 固定为 refresh_token

refresh_token:刷新令牌(注意不是access_token,而是refresh_token

刷新令牌成功:

商城项目---畅购chapter09(第九天)

4.2.2 密码模式

密码模式(Resource Owner Password Credentials)与授权码模式的区别是申请令牌不再使用授权码,而是直接 通过用户名和密码即可申请令牌。

测试如下:

Post请求:
http://localhost:9200/oauth/token

携带参数:
grant_type:密码模式授权填写password
username:账号
password:密码

并且此链接需要使用 http Basic认证。 添加授权得**:注意找个地方autho2里面得代码得密码是:itheima,而视频里面是szitheima,我一直在请求,一直是密码错误,这个密码不是数据库中得密码!!!

商城项目---畅购chapter09(第九天)

商城项目---畅购chapter09(第九天)

4.2.2.1 申请令牌

测试如下:

商城项目---畅购chapter09(第九天)

可以看到这个用户得信息

商城项目---畅购chapter09(第九天)

商城项目---畅购chapter09(第九天)

商城项目---畅购chapter09(第九天)

商城项目---畅购chapter09(第九天)

生成证书

商城项目---畅购chapter09(第九天)

商城项目---畅购chapter09(第九天)

令牌测试:

生成令牌:

商城项目---畅购chapter09(第九天)

解密:

商城项目---畅购chapter09(第九天)

注意:这个在复制公钥得时候最后回多一个\n记得要删除

 

商城项目---畅购chapter09(第九天)

商城项目---畅购chapter09(第九天)

商城项目---畅购chapter09(第九天)

 

用户Autho2封装测试

Controller:

商城项目---畅购chapter09(第九天)

Service:

商城项目---畅购chapter09(第九天)

这个Map里面封装得key绝对不能有任何得空格和逗号,如果有空格,这个http发送请求就发送失败报406错误!!!!这个password=itheima,不是szitheima,autho2里面设置密码事itheima,不然一直报密码错误!!Basic得右边一定要有空格!不然也回请求失败

httpEnttiy里面得参数顺序不能放反,不然也会请求失败

商城项目---畅购chapter09(第九天)

成功:

商城项目---畅购chapter09(第九天)

商城项目---畅购chapter09(第九天)