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