gpt4 book ai didi

amazon-web-services - 放大未发送到 Lambda 触发器的 Auth.signIn() ClientMetadata

转载 作者:行者123 更新时间:2023-12-05 04:52:58 26 4
gpt4 key购买 nike

我们正在将我们的身份验证转移到 Cognito,并且需要更改我们从 Cognito 获得的 token 。我们正在使用 Pre Token Generation Lambda 触发器来完成此操作。我们还使用 Amplify 的 Auth 库。但是,我无法访问我们使用 Auth.signIn() 发送的 clientMetadata。

在前端我们有:

const user = await Auth.signIn(username, password, { metadataKey: metadataValue });

看来请求已正确发送,因为在我们拥有的网络选项卡上的请求负载中:

{
AuthFlow: ...,
AuthParameters: ...,
ClientId: ...,
ClientMetadata: { metadataKey: metadataValue }
}

在 lambda 函数中,我只是将事件记录到控制台:

exports.handler = async (event, context, callback) => {
console.log('Event:', event)
callback(null, event)
}

在 AWS Cloundwatch 日志中,每次我们从应用程序登录时都会记录事件(因此一切似乎都已正确设置),但事件不包含 clientMetadata 属性event.request 的一部分。

所以最终,一切运行正常,没有错误或类似的东西,我们从 Cognito 取回了我们的 token ,但是在 Lambda 函数中找不到 clientMetadata,阻止我们在 Lambda 函数中执行必要的逻辑以调整我们的代币。

链接:

如有任何帮助,我们将不胜感激。

更新:

这似乎是因为我们正在使用身份验证流程“USER_PASSWORD_AUTH”。此流程是顺利的用户迁移所必需的,这就是我们使用它的原因,但它似乎忽略了我们发送的 clientMetadata。

最佳答案

在执行 Auth.signIn 之前尝试使用 Auth.configure 设置元数据值。一方面,登录事件看起来不像是 token 前 lambda 触发器,这解释了为什么未传递元数据。我很欣赏这不是特别直观。也就是说,另一方面,假设在作为刷新的一部分生成 token 时您将需要访问相同的元数据值,那么您可能无论如何都需要涵盖其他非初始登录事件。使用 Auth.configure 看起来可以同时解决这两个问题。

关于amazon-web-services - 放大未发送到 Lambda 触发器的 Auth.signIn() ClientMetadata,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66307604/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com