OAuth2.0实战案例(三)搭建认证服务,授权码模式测试,就是这个服务的功能是返回给你token,以后你拿上这个token就可以随意访问了

本文详细介绍了如何通过OAuth2.0授权码模式,让A系统从B系统获取授权并利用授权码换取token的过程,包括手动添加A系统信息、授权流程、访问资源服务及其实现原理。

之前已经将资源的服务和认证的服务已经搭建成功了。现在我们就开始使用这两个服务进行测试了。

在这里插入图片描述
B系统里面要保存A系统的信息,现在我们手动在B系统的数据库里面添加A系统的客户信息
本来是B系统给A系统一个界面,保存A系统的信息,但是现在我们只是测试,就不写界面了,只是手动添加A系统的信息就可以了
在这里插入图片描述
以上就配置好了。

之前已经讲过,A系统向B系统要授权的方式有4种,现在一个一个给你解答授权的流程

1 授权码模式测试

之前已经写好了B系统,也就是写好了认证服务和资源服务。现在我们没有写A系统,我们就假装有A系统,就是一个路径
http://localhost:9001/oauth/authorize?response_type=code&client_id=one

这个路径你就可以认为是A系统发起的一个向B系统要授权的一个路径。

http://localhost:9001/oauth/authorize? 这个一定要这样写,这个是OAuth2.0提供的地址,只是端口变为你的就可以了。client_id=one这个是数据库里面的,就是B系统里面保存的A系统的信息
在这里插入图片描述
一访问以上的路径,就会跳转到登录的页面
在这里插入图片描述
这个登录的用户名和密码是用户在B系统里面注册的,也就是整合springsecurity框架的时候用的用户名和密码,就是B系统数据库里面保存的用户的信息的用户名和密码。

我们输入以后,就跳转到了这个询问的界面,就是B系统问用户的界面,问:
你让不让A系统访问B系统
在这里插入图片描述
第一个按钮就是让,第二个就是不让

只有数据库的这个字段为false,我们才可以看见这个界面,B系统才会询问,不然就是默认的
在这里插入图片描述
我们选择之后,点击之后,就跳转到了百度,因为数据库里面保存的返回系统A的地址是写的百度的,本来应该写系统A里面服务端的一个地址,现在测试我们写了百度的
,返回的就是这个

在这里插入图片描述

https://www.baidu.com/?code=demkHP
这个code就是系统B给系统A 的一个授权码,我们现在看到的授权码,相当于系统B给了系统A一个授权码,现在系统A就拿到了授权码了。现在系统A就要拿这个授权码到系统B里面要token了。
系统A就要走这个路径,并且携带授权码到系统B拿token了,在postman软件里面测试

在这里插入图片描述
根据以上的测试,系统A就拿到了系统B返回的token了。

我们先直接访问系统B的资源服务
在这里插入图片描述
返回的就是报错,告诉你没有权限

如果在路径后加了token

在这里插入图片描述

看就可以访问成功,现在我们就实现了OAuth2.0访问资源服务的功能

总结

以上就是授权码模式,用授权码的形式拿到了token。

记住

系统A访问系统B要授权码的地址是固定的,这个是OAuth2.0规定的
http://localhost:9001/oauth/authorize?response_type=code&client_id=one

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一写代码就开心

你的打赏将是我最大的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值