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

使用Oauth2认证redis_使用Oauth2认证redis


B系统里面要保存A系统的信息,现在我们手动在B系统的数据库里面添加A系统的客户信息

本来是B系统给A系统一个界面,保存A系统的信息,但是现在我们只是测试,就不写界面了,只是手动添加A系统的信息就可以了

使用Oauth2认证redis_用户名_02


以上就配置好了。

之前已经讲过,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系统的信息

使用Oauth2认证redis_用户名_03


一访问以上的路径,就会跳转到登录的页面

使用Oauth2认证redis_数据库_04


这个登录的用户名和密码是用户在B系统里面注册的,也就是整合springsecurity框架的时候用的用户名和密码,就是B系统数据库里面保存的用户的信息的用户名和密码。我们输入以后,就跳转到了这个询问的界面,就是B系统问用户的界面,问:

你让不让A系统访问B系统

使用Oauth2认证redis_数据库_05


第一个按钮就是让,第二个就是不让只有数据库的这个字段为false,我们才可以看见这个界面,B系统才会询问,不然就是默认的

使用Oauth2认证redis_使用Oauth2认证redis_06


我们选择之后,点击之后,就跳转到了百度,因为数据库里面保存的返回系统A的地址是写的百度的,本来应该写系统A里面服务端的一个地址,现在测试我们写了百度的

,返回的就是这个

使用Oauth2认证redis_百度_07

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

使用Oauth2认证redis_java_08


根据以上的测试,系统A就拿到了系统B返回的token了。我们先直接访问系统B的资源服务

使用Oauth2认证redis_用户名_09


返回的就是报错,告诉你没有权限

如果在路径后加了token

使用Oauth2认证redis_java_10

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

总结

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

记住

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