javascript - 将 Nestjs 与 Cognito 集成
问题描述
我正在将来自 Cognito 的 JWT 授权集成到我的 Nestjs 应用程序中,我遇到了一种鸡与蛋的情况。
如果为我的 Cognito 客户端生成 clientSecret,我将收到以下错误:
“无法验证客户端 {Client_Id} 的秘密哈希”
如果我在 Cognito 中创建新客户端时取消选中 clientScret generation,应用程序编译时会出现以下错误:
[ExceptionHandler] JwtStrategy 需要一个秘密或密钥 +0ms
我一直在遵循本指南来实现它:https ://brightinventions.pl/blog/using-cognito-with-nest-js/ ,但它并没有真正解决任何这些问题。
有人可以在这里提供一些指导吗?
解决方案
您分享的教程让后端处理用户注册、登录和注销。我想将访问令牌委托给 AWS Cognito。
对于请求受保护资源的用户,后端通过两种方式验证作为不记名令牌传递的访问令牌:
如何验证 AWS Cognito 池生成的 jwt 令牌。
如果您不想访问其他用户信息,通过验证用户的访问令牌来验证用户就足够了。
如果要获取用户的其他信息(如邮箱和自定义属性),可以使用自己共享的版本,或者通过存储在 JWT 令牌中的用户子 id 获取用户信息。
谢谢,愉快的编码。希望这可以帮助你。
推荐阅读
- java - 如果被唤醒,睡眠中断的线程是否应该重新中断自己?
- visual-studio-code - 有没有办法通过文件类型而不是扩展名从 VS Code 资源管理器中排除文件?
- postgresql - 如何使用表达式设置序列的开始
- scala - 将 Spark 数据集连同分区一起写入 Excel 文件
- postgresql - 当涉及到 `UNIQUE INDEX` 时,为什么 UPDATE 查询结果会有所不同?
- reactjs - .toHaveStyleRule TS 错误 - 类型“FlattenInterpolation”
>' 不可分配给类型 'string' - django - 我可以根据是否从 swagger 调用视图返回不同的 Django 响应吗?
- android - Android推送通知意图未使用自定义应用内区域设置本地化应用活动
- amazon-web-services - 向 AWS EMR 提交作业,指定多个输入 s3 位置
- python - 启动另一个不是 *host* 进程的子进程的 python 进程