【问题标题】:Spring Security - REST API - token vs. cookieSpring Security - REST API - 令牌与 cookie
【发布时间】:2015-06-02 14:16:11
【问题描述】:

我已经用 Java 编写了一个 REST-API,并且我已经使用 Spring Security 保护了这个 API。程序是这样的:

  1. 前端在后端调用 /login RestService
  2. 后端将令牌返还给前端
  3. 在每个 REST-API 后端调用中,令牌必须放在标头中

这很好用,但我已经读到(使用 Node.JS/Passport.js/Express.js)也可以在没有任何自定义代码的情况下将带有 cookie 的会话对象开箱即用。

我现在的问题是,是否有更好的方法,以便前端/客户端不需要为任何请求一直将令牌设置到标头中。

【问题讨论】:

  • 使用cookies(就像你提到的node.js、passport.js、express.js使用的方式)

标签: spring spring-security token


【解决方案1】:

通常基于令牌的身份验证优于基于 cookie。

您可以使用中间件层来实现这一点

这是一个很好的帖子 - https://auth0.com/blog/2014/01/07/angularjs-authentication-with-cookies-vs-token/

【讨论】:

    【解决方案2】:

    服务器端,我通常首先检查标头是否有身份验证令牌。如果没有,我会检查 cookie 作为后备。

    如果您想使用 cookie,那么在您的第 2 步中,您需要在响应中添加 Set-Cookie header,以便浏览器知道它们必须存储 cookie。完成后,无需在客户端添加标头,因为浏览器将在每个请求中发送 cookie。不过,您需要添加 CSRF 保护(here 就是一个很好的例子)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-11
      • 2016-03-22
      • 2017-09-16
      • 2014-10-02
      • 2014-08-31
      • 2018-04-26
      • 2011-12-20
      相关资源
      最近更新 更多