2

我试图实现Spring OAuth。我是新手,我试图理解它是如何工作的。Spring Oauth令牌存储机制

我的问题:

  1. OAuth认证后,生成令牌此标记必须用于每个用户发出请求。我们需要将此access_token附加到每个REST API调用以访问资源。我听起来正确吗?
  2. 我们是否需要在客户端(使用cookie)存储此令牌?或者无论如何,这样我们就不需要在客户端存储这个令牌,并且可以在服务器端处理呢?
  3. 如果我们必须在客户端存储令牌,那么最好的方法是什么?我曾经使用过此link

回答

0
  1. 不见了如果您的服务器上的终结点OAuth的保护,那么,你必须通过每个请求令牌 - 可能是在“授权:承载{}令牌”头。在春天它解决了通过使用不同的restTemplate - OAuth2RestTemplate,它会自动获取并添加请求。
  2. 您只需将JSESSIONID存储在cookie中即可。然后从商店弹出读取会话(安装tomcat的光盘/ redis如果使用spring会话项目/ etc)
  3. 访问令牌应该是相对较短的活件。还应该撤销端点,以便在有理由相信它被入侵时可以使特定令牌无效。

3.a)在客户端存储一些数据存在另一个问题。它关于在移动本地应用上存储clientId,clientSecret。 Android应用程序代码可以很容易地进行反向设计,所以任何人都可以尝试使用您的oauth应用程序来获取令牌。在那些情况下,它的recomennded使用不同的授予类型“密码” - 检查https://aaronparecki.com/2012/07/29/2/oauth2-simplified#other-app-types

+0

谢谢你的答案。你能给我更详细的关于JSESSIONID如何实现它吗?为我提供任何链接。 – Anonymous

+0

它是Spring用来处理会话的默认cookie名称。尝试在你的弹簧控制器中存储任何会话。那么你应该在萤火虫中看到这个cookie。 – freakman