如何修改 AWS Cognito JWT Tokens,我们正在使用 NodeJS 技术问题

Posted

技术标签:

【中文标题】如何修改 AWS Cognito JWT Tokens,我们正在使用 NodeJS 技术问题【英文标题】:How to modify AWS Cognito JWT Tokens, we are using NodeJS technical question 【发布时间】:2021-08-09 21:00:50 【问题描述】:

我正在使用 AWS Cognito 进行用户管理。我在 JWT 令牌(有效负载中)中获得了太多信息。我不想将它传递给接收 API 客户端。所以我的问题是如何减少数据或获取只有用户需要的数据。发送这么多数据是安全问题。

我没有找到任何文档或控制台控件来修改它们。

例如我只想要:

"exp": 0000000000,
"at":  0000000000,
"username":"exampleUsername"

【问题讨论】:

你看过npmjs.com/package/jsonwebtoken吗? 【参考方案1】:

听起来您的客户可能是第三方,或者您不太信任。您可以为此应用程序设置单独的 Cognito UserPool 应用程序客户端。然后编写一个 Pre Token Generation Lambda 来禁止您不想向此客户端公开的令牌字段,并将其分配给正确的 UserPool App Client。

https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-pre-token-generation.html

您可能已经知道这一点,但是在令牌发出后,您无法在不使令牌失效的情况下对其进行编辑。

【讨论】:

以上是关于如何修改 AWS Cognito JWT Tokens,我们正在使用 NodeJS 技术问题的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 .AddJwtBearer() 在 .NET Core Web API 中验证 AWS Cognito JWT

ASP.NET Core AWS Cognito JWT

更改 AWS Cognito 访问令牌 JWT 中的加密算法

AWS Cognito JWT 令牌验证

AWS Cognito - 使用 JWT 与 cognito.getUser 开发工具包验证令牌

AWS Cognito 基于 JWT 属性的路由