商城项目---畅购chapter09(第九天)
第9章 Spring Security Oauth2 JWT
这章得内容还是比较有意思得,可以快速得理解第三方得登录得原理
导入oautho2的工程
可以看到导包有出现了maven冲突
在autho2的pom坐标中的父工程名字要进行修改
可以看到他这个报错得原因都是因为项目中的地方使用得都是下划线_而不是中划线-,修改之后就全部正常了
配置文件得IP要修改
公钥加密,私钥解密==非对称加密
回车之后
跳转到授权界面
获取授权码
发送请求
响应成功
进行令牌校验
http://localhost:9200/oauth/check_token?token= [access_token](替换未自己请求得令牌)
刷新令牌:刷新令牌是当令牌快过期时重新生成一个令牌,它于授权码授权和密码授权生成令牌不同,刷新令牌不需要授权码 也不需要账号和密码,只需要一个刷新令牌、客户端id和客户端密码。
测试如下: Post:http://localhost:9200/oauth/token
参数:
grant_type: 固定为 refresh_token
refresh_token:刷新令牌(注意不是access_token,而是refresh_token)
刷新令牌成功:
4.2.2 密码模式
密码模式(Resource Owner Password Credentials)与授权码模式的区别是申请令牌不再使用授权码,而是直接 通过用户名和密码即可申请令牌。
测试如下:
Post请求:
http://localhost:9200/oauth/token
携带参数:
grant_type:密码模式授权填写password
username:账号
password:密码
并且此链接需要使用 http Basic认证。 添加授权得**:注意找个地方autho2里面得代码得密码是:itheima,而视频里面是szitheima,我一直在请求,一直是密码错误,这个密码不是数据库中得密码!!!
4.2.2.1 申请令牌
测试如下:
可以看到这个用户得信息
生成证书
令牌测试:
生成令牌:
解密:
注意:这个在复制公钥得时候最后回多一个\n记得要删除
用户Autho2封装测试
Controller:
Service:
这个Map里面封装得key绝对不能有任何得空格和逗号,如果有空格,这个http发送请求就发送失败报406错误!!!!这个password=itheima,不是szitheima,autho2里面设置密码事itheima,不然一直报密码错误!!Basic得右边一定要有空格!不然也回请求失败
httpEnttiy里面得参数顺序不能放反,不然也会请求失败
成功: