我是OAuth 2.0的新手,正尝试使用具有授权代码授予流程(如Authorization Server和Spring Security)的第三方OAuth提供程序来开发应用程序。
该提供程序给了我两个端点/authorize
和/token
,在用户授权其访问权限后,这两个端点将返回访问令牌。
到目前为止,我已经保护了“ /”端点,因此应用程序将用户重定向到授权页面,然后在回调端点中存储令牌,以便可以通过每个请求中的过滤器对其进行验证。
但是,由于该应用程序主要是一组REST API,我们希望能够使用Postman对其进行测试,也就是说,在Postman上,我通过将Authorization设置为OAuth 2.0并请求该令牌来获得令牌直接来自第三方端点,但是由于Postman有自己的回调URI,因此我的应用程序不存储生成的令牌。
所以,我对此有两个疑问:
答案 0 :(得分:0)
由于您的应用程序是一组REST API,因此您需要将其设置为资源服务器(就OAuth2而言)。
Resource Server本身不执行身份验证,它仅验证来自Authorization
标头(Resource Server in a nutshell)的令牌。
您可以在Spring Security示例中找到一个示例:oauth2resourceserver
答案 1 :(得分:0)
我最终得出结论,我一直都在错误地使用Postman。 因此,最后,当用户登录时,我们将令牌保存在数据库中,然后将其返回给调用方,无论是前端应用程序还是Postman本身。 然后,在每次对API的调用中,调用者应在标头上包含令牌作为Authorization,并且Spring上的Filter会对照数据库检查该令牌。