Spring Security - REST API - 令牌与cookie

时间:2015-06-02 14:16:11

标签: spring spring-security token

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

  1. 前端在Backend中调用/登录RestService
  2. 后端将令牌返回前端
  3. 在每个REST-API后端调用中,令牌必须放在标题
  4. 这样可以正常工作,但我已经读过(使用Node.JS / Passport.js / Express.js),内部cookie的会话对象可以在没有任何自定义代码的情况下传输出来。

    我现在的问题是,如果有更好的方法,那么前端/客户端不需要一直将标记设置到标头中。

2 个答案:

答案 0 :(得分:3)

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

您可以使用中间件层实现此目的

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

答案 1 :(得分:2)

服务器端,如果有auth令牌,我通常首先检查标头。如果没有,我然后检查cookie作为后备。

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