当前位置: 首页 > 知识库问答 >
问题:

Spring Boot+Angular 9 JWT令牌存储在HTTPOnly Cookie中

董同
2023-03-14

我使用带有Angular 9的Spring boot和无状态会话实现。应用程序正在成功执行登录和注册功能。字符串引导在每个登录请求上生成令牌(JWT)。登录后,当我尝试运行第二个选项卡的应用程序时,它再次要求我登录。为了克服这个问题,我将令牌保存在LocalStorage,然后在单击另一个选项卡时,angular代码能够从LocalStorage中选择令牌。但是经过一些研发,我知道应该使用HTTPOnly Cookie来代替LocalStorage。有人能帮助我使用一个只有HTTP的cookie与角9和Spring引导。谢谢

共有1个答案

宇文迪
2023-03-14

下面是创建一个仅HTTP的cookie并将其附加到响应的示例代码。您至少需要传入HttpServletResponse来将cookie附加到头部。您可以使用ResponseEntity或其他东西返回响应正文中的任何内容。

@PostMapping("/refresh_token")
public ResponseEntity refreshToken(HttpServletResponse response)
{
   //create cookie for refresh token
   Cookie refreshTokenCookie = new Cookie("refresh_token", refreshToken);
   refreshTokenCookie.setHttpOnly(true);
   refreshTokenCookie.setSecure(true); //only allows HTTPS
   refreshTokenCookie.setPath("/");
   refreshTokenCookie.setDomain("api.lsp.com"); //restrict domain

   response.addCookie(refeshTokenCookie);

   return ResponseEntity(HttpStatus.OK);
}
 类似资料:
  • 我正在实现一个需要身份验证的REST服务。我正在使用JWT。 现在,Android应用程序在登录时发送一个请求,获得一个令牌,并且必须在每个后续请求的头中发送令牌。 我的问题是,如何存储令牌,或者我应该将其存储在哪里? 共享偏好 SQLite数据库 归档 最好的做法是什么?还是我完全错了?

  • 我正在用Django和angular构建一个应用程序。目前,我正在本地存储上存储后端发布的JWT。但是,我担心XSS攻击。我应该使用仅HTTP cookie存储令牌吗?我还考虑将令牌存储在auth服务类的变量字段中。但我不能完全确定angular是否在整个应用程序中共享该服务。我的身份验证服务是否只有一个实例?

  • 问题内容: 我遇到一种情况,我想自己创建一个访问令牌(因此不能通过通常的过程)。我想出了这样的东西: 唯一的问题是我不确定如何创建OAuth2Authentication(在我的代码中带有xxx的部分)。我有用户和客户信息,我知道我想授予该令牌的单位。 问题答案: 在这里,根据使用的流程,您的用例可能会略有不同。这适用于密码授予流程。有一些自定义类,如令牌存储,令牌增强器等。但这实际上只是为满足我

  • 我正在尝试从应用程序服务中获取Google的刷新令牌,但我不能。 日志说 2016-11-04T00:04:25 PID[500]收到的详细请求:获取https://noteappsvr.azurewebsites.net/.auth/login/google?access _ type = offline 2016-11-04t 00:04:25 PID[500]从https://account

  • 我在试图理解令牌在Firebase存储中是如何工作的。 每当我的web应用程序将图像上传到FS,它就会在其公共URL中添加一个令牌。问题是,每当您将同一图像文件上传到web应用程序的另一个部分时,您似乎没有得到另一个文件,而是得到了已经上传的文件url的不同令牌,从而为以前注册的图像显示呈现403错误。 有办法解决这个吗? 如果用户重复这个过程,并在应用程序的另一个部分上传相同的picture.j

  • 您好,我目前正在为Android应用程序构建登录系统(它连接到服务器并检索web令牌),对此我有多个问题: 在Android本地存储这种令牌的首选方式是什么? 是否有一个库,允许我加密它并安全地存储在SharedPrefs上,而不需要单独存储密钥和盐的加密? 将令牌从LoginActive发送到Intent Extra内的其他活动是否安全? 此外,一个额外的问题是,通过将电子邮件/密码组合作为参数

  • 我有一个react/Gatsby web应用程序,它使用Aws Cognito身份验证。该应用程序调用aws api网关上托管的几个rest api,该网关再次使用Cognito Authorizer。当用户第一次登录到发送到api网关的每个请求的授权头时,我需要传递cognito发出的身份验证jwt令牌。我应该把代币安全地存放在哪里? 谢谢,

  • 我正在使用vue.js和vuex开发一个应用程序,它使用JWT令牌对JSON API服务器进行身份验证。所以我想知道存放JWT代币的最佳做法是什么? 如果我将其存储在vuex商店中,则页面刷新后它会丢失,因此用户需要再次登录,这不是很方便。 如果我将其存储在浏览器的本地存储中,它会在下次登录之前被弃用,然后假设身份验证令牌的组件会混淆。我不知道如何处理这个问题。 感谢你对此的暗示。