Angular Spring Security OAuth2在cookie中存储访问令牌

Angular Spring Security OAuth2在cookie中存储访问令牌,angular,cookies,spring-security,spring-security-oauth2,Angular,Cookies,Spring Security,Spring Security Oauth2,我使用Spring Security+Angular。当我向/oauth/token发出post请求并获取token时: { "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NDY5NDQwODYsInVzZXJfbmFtZSI6ImFkbWluIiwiYXV0aG9yaXRpZXMiOlsiUk9MRV9BRE1JTiJdLCJqdGkiOiI4M2VhMTA1MC05NjczLTRlZGItOTlmM

我使用
Spring Security
+
Angular
。当我向
/oauth/token
发出post请求并获取token时:

{
    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NDY5NDQwODYsInVzZXJfbmFtZSI6ImFkbWluIiwiYXV0aG9yaXRpZXMiOlsiUk9MRV9BRE1JTiJdLCJqdGkiOiI4M2VhMTA1MC05NjczLTRlZGItOTlmMS0yNWIzOTQ1ODdjMmUiLCJjbGllbnRfaWQiOiJmcm9udGVuZCIsInNjb3BlIjpbInJlYWQiLCJ3cml0ZSJdfQ.i6v2G70eEgGUt_CdgctcTrGgz_RHs6OuEA8lGHOgVro",
    "token_type": "bearer",
    "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJhZG1pbiIsInNjb3BlIjpbInJlYWQiLCJ3cml0ZSJdLCJhdGkiOiI4M2VhMTA1MC05NjczLTRlZGItOTlmMS0yNWIzOTQ1ODdjMmUiLCJleHAiOjE1NDk1MzI0ODYsImF1dGhvcml0aWVzIjpbIlJPTEVfQURNSU4iXSwianRpIjoiNzQxMDA0NzUtODkxOC00YjM5LTk5NDMtNjAzMWIxMGVjNGQ3IiwiY2xpZW50X2lkIjoiZnJvbnRlbmQifQ.3QOdAL10lQsPSvsFfgyf02gvAanyJ-R1BX_wtF1APB0",
    "expires_in": 3599,
    "scope": "read write",
    "jti": "83ea1050-9673-4edb-99f1-25b394587c2e"
}
如何在
Spring Security
端指定cookie的安装并在那里保存令牌?或者我必须在
角度
一侧这样做:

Cookie.set("access_token", token.access_token, expireDate);

正确的做法是什么?在我看来,在cookie中存储令牌是一个正确而安全的决定。

访问令牌是为执行rest调用的用户代理设计的。他们可以安全地存储访问令牌(大多数在安全服务器上的内存中存储),并在每次调用时将该令牌传递给服务器

也就是说,您的应用程序不应该将该令牌以cookie的形式发送到浏览器

如果您正在使用令牌,那么您的应用程序已经被认为安全性较低,因为获取令牌不需要客户端凭据

在这种情况下,我建议将其保存在应用程序的内存中。如果应用程序必须存储它(以生存重载等),请考虑使用

最坏的情况将在浏览器关闭后继续存在

但我觉得你不需要饼干。因为令牌是使用带有
承载前缀的授权头传递给API的

Authorization: Bearer AbCdEf123456

希望这对您有所帮助

谢谢您的回复。但我仍然不了解在使用
Angular
frontend时存储访问令牌的最佳实践。您将其存储在javascript应用程序的内存中<代码>变量标记=然后在每次请求时都将其放弃。我相信一些javascript框架已经为您完成了这项工作。不要将令牌存储在本地存储中,这是一个安全问题。请检查一下好吗?