springboot 微服务中的自定义 JWT 令牌

     2023-03-08     26

关键词:

【中文标题】springboot 微服务中的自定义 JWT 令牌【英文标题】:Custom JWT token in springboot microservices 【发布时间】:2022-01-11 00:57:23 【问题描述】:

我们有一个应用程序在成功验证后从外部系统加载信息(特定于用户),为了避免每次 api 调用到外部系统的往返,我们计划首先创建一个带有用户特定信息的自定义 JWT 令牌当用户通过身份验证时,然后使用 http 拦截器在每个响应标头中将令牌发送给用户,并且在前端,我们将自定义令牌与授权令牌一起包含在每个请求中。这是正确的方法吗?您有其他建议吗?

我研究了其他分布式缓存技术,例如 redis,但对于小型用例而言并不那么吸引人。我们的有效载荷长度不超过 4 到 5K,因此倾向于 JWT 选项

【问题讨论】:

【参考方案1】:

可以在访问令牌中包含允许您处理用户授权的用户信息。请注意隐私含义,可能不包括社会安全号码或出生日期等个人信息或其他可识别信息。

另外,请确保令牌大小不会变大。另一种选择是在 API 收到新的访问令牌时查找并缓存用户信息。

包括 ASP.NET Core 在内的某些系统确实以加密形式将令牌存储在会话 cookie 中,因此最终用户无法查看或访问存储的令牌。

如果您正在开发 SPA 应用程序,则使用 BFF pattern 是一种方法。

【讨论】:

在springboot微服务中设置jwt令牌生成中的两个主题(代码片段)

我正在尝试为我的微服务生成一个JWT令牌。该令牌将使用我的前端应用程序进行服务访问。在这里,我通过添加我的用户名来设置主题。我需要添加用户ID和用户名。我只是通过添加主题“用户名”来生成令牌的代码。我的代码... 查看详情

PHP 中的自定义 JWT 一直说签名无效

】PHP中的自定义JWT一直说签名无效【英文标题】:CustomJWTINPHPkeepssayingInvalidsignature【发布时间】:2020-01-2323:54:22【问题描述】:我是新手,我正在尽力创建自己的JWT类。我认为我做的一切都是正确的,但是当我尝试将我的令牌粘... 查看详情

JWT 身份验证不适用于 Django 中的自定义控制器

】JWT身份验证不适用于Django中的自定义控制器【英文标题】:JWTauthenticationdoesn\'tworkforcustomcontrollerinDjango【发布时间】:2015-08-2802:12:30【问题描述】:我在我的Python应用程序中使用DjangoRestFramework,并使用JSONWeb令牌身份验证(DRFJWT)... 查看详情

微服务 - 如何使用 JWT 对单独的 API 微服务进行身份验证

...发布时间】:2020-05-0216:00:52【问题描述】:我正在尝试在springboot(java)中构建一个微服务。我正在使用Java中的微服务开发应用程序。我已经构建了一个authapi,它处理通常的注册登录等,它发出JWT(内置jav 查看详情

oauth 2.0、JWT、Spring 安全、微服务

...需要对SpringSecurity的所有流程有所了解。我已经在同一个SpringBoot应用程序中实现了oauth2授权服务器和资源服务器。我可以在其中生成JWT令牌。此应用程序中的示例Restapi是安全的,并且只能通过令牌 查看详情

微服务中的 JWT 身份验证

】微服务中的JWT身份验证【英文标题】:JWTAuthenticationinMicroservices【发布时间】:2021-08-1319:04:04【问题描述】:我正在开发一个包含5个微服务的SpringRest微服务项目。我在用户MS中添加了JWT身份验证,并且正在生成JWT令牌。现在如... 查看详情

使用 JWT 保护微服务之间的通信

...ingJWT【发布时间】:2019-11-2300:08:28【问题描述】:我使用SpringBoot构建了3个微服务:1)Auth服务-创建JWT。2和3-做某事的微服务(RESTAPI)。理论上,用户可以在没有微服务1创建的令牌的情况下访问微服务2和微服务3。假设我将令牌传递... 查看详情

SpringBoot 使用 ControllerAdvice 中的自定义错误处理所有错误

】SpringBoot使用ControllerAdvice中的自定义错误处理所有错误【英文标题】:SpringBoothandleallerrorswithcustomerrorinControllerAdvice【发布时间】:2020-10-2712:13:07【问题描述】:我有一个RESTapispringboot应用程序,想处理ControllerAdvice中的任何错误... 查看详情

spring boot - 假装客户端发送基本授权标头|将 jwt 令牌从一个微服务传递到另一个微服务

】springboot-假装客户端发送基本授权标头|将jwt令牌从一个微服务传递到另一个微服务【英文标题】:springboot-feignclientsendingonbasicauthorizationheader|Passjwttokenfromonemicroservicetoanother【发布时间】:2018-09-1212:53:24【问题描述】:我正在使... 查看详情

Spring Boot 自定义 JWT 过滤器不允许任何没有令牌的请求

】SpringBoot自定义JWT过滤器不允许任何没有令牌的请求【英文标题】:SpringbootcustomJWTfilternotallowinganyrequestwithouttoken【发布时间】:2021-03-3023:54:46【问题描述】:我正在使用带有SpringBoot安全配置的自定义JWT过滤器来允许某些没有JWT... 查看详情

Kong API 网关中的自定义身份验证服务

】KongAPI网关中的自定义身份验证服务【英文标题】:CustomAuthenticationServiceinKongAPIGateway【发布时间】:2018-01-1901:20:06【问题描述】:我们目前正在为我们的微服务分析API网关,而Kong是可能的候选者之一。我们发现Kong支持多个身... 查看详情

Spring Boot(微服务)网关在使用 JWT 进行身份验证时失败

】SpringBoot(微服务)网关在使用JWT进行身份验证时失败【英文标题】:SpringBoot(Microservices)GatewayfailsonauthenticationwithJWT【发布时间】:2019-03-0112:41:35【问题描述】:我已经用SpringBootGateway构建了一个微服务网关,它可以工作。接下... 查看详情

Springboot jpa:实体无法绑定不在表列中的自定义查询中的数据

】Springbootjpa:实体无法绑定不在表列中的自定义查询中的数据【英文标题】:Springbootjpa:Entitycan\'tbinddatafromcustomquerythat\'snotintablecolumn【发布时间】:2021-12-1310:51:22【问题描述】:我使用javaSpringbootJPA,mysql。我需要从我的自定义... 查看详情

使用 IdentityServer 与创建基于 JWT 的自定义身份验证

...有点过头了。我的理解是:客户端执行登录API或身份验证服务器以令牌响应客户端调用API(包括保存令牌的标头)API检查令牌是否有效,如果有效则返回资源我检查了几个选项 查看详情

Spring Boot 中的自定义异常

】SpringBoot中的自定义异常【英文标题】:CustomExceptioninSprinBoot【发布时间】:2019-12-1209:54:06【问题描述】:我在SPRINGBOOT中编写了以下自定义错误处理程序@RestControllerAdvicepublicclassCustomGlobalExceptionHandlerextendsResponseEntityExceptionHandler@... 查看详情

SpringBoot jars 作为 JBoss EAP 7.0 中的自定义模块

】SpringBootjars作为JBossEAP7.0中的自定义模块【英文标题】:SpringBootjarsasacustommoduleinJBossEAP7.0【发布时间】:2021-02-1820:59:56【问题描述】:我想为SpringBootjar创建一个JBossEAP自定义模块,并在JBoss中的不同战争部署中使用这个自定义模... 查看详情

汇总中的自定义命名导出不起作用

】汇总中的自定义命名导出不起作用【英文标题】:CustomNamedExportsinRollupNotWorking【发布时间】:2018-01-0611:23:43【问题描述】:我第一次使用Rollup(按照angular.io的示例),我收到了这个错误:\'node_modules/angular2-jwt/angular2-jwt.js\'没... 查看详情

具有 OAuth 2 和 JWT 安全性的 Spring Boot 微服务

】具有OAuth2和JWT安全性的SpringBoot微服务【英文标题】:SpringbootmicroservicewithOAuth2andJWTforSecurity【发布时间】:2016-07-1015:21:03【问题描述】:我正在开发一个使用微服务进行支付的SpringBoot应用程序,它将被移动应用程序和Web应用程... 查看详情