Yus*_*suf 6 amazon-web-services amazon-cognito aws-sdk aws-lambda
我对 AWS 比较陌生,因此我对此缺乏了解可能是我不明白为什么这不起作用的原因。但是,我已经在网络和文档中查找了解决方案(几天了);由于我仍然不明白的原因,这些解决方案在我的情况下不起作用。
我遇到的问题是我的用户设置了这些自定义属性,这些属性在验证用户身份时不存在于 jwt access_token 中:
但是,当使用以下命令在我的 Express 后端对用户进行身份验证时@aws-sdk/client-cognito-identity-provider:
const pool = await this._awsCognitoService
.initiateAuth({
AuthFlow: "USER_PASSWORD_AUTH",
ClientId: process.env.CLIENT_ID,
AuthParameters: {
USERNAME: data.email,
PASSWORD: data.password,
},
});
Run Code Online (Sandbox Code Playgroud)
解码 AccessToken 后,我的自定义属性都不存在。
因此,我添加了用于预令牌生成的 lambda 函数触发器(https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-pre-token- Generation.html )

代码如下所示:
exports.handler = (event, context, callback) => {
event.response = {
"claimsOverrideDetails": {
"claimsToAddOrOverride": {
"custom:branch_id": event.request.userAttributes["custom:branch_id"],
"custom:company_id": event.request.userAttributes["custom:company_id"],
},
},
}
callback(null, event)
};
Run Code Online (Sandbox Code Playgroud)
当用户进行身份验证(通过 Express 应用程序)时,预令牌生成 Lambda 函数会被触发。
但是,从中检索的访问令牌initiateAuth(...)没有我设置要覆盖的那些属性。
我已经在读取和写入上设置了自定义属性的属性,所以这不是问题。(https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html)

我知道这与问题无关,但我别无选择,只能尝试。我已经启用了应用程序客户端设置上的所有属性,这样我就可以看到那些甜蜜的自定义属性,但仍然相同。令牌上不存在自定义属性。

最初,所有这些复选框都未被选中。我将其恢复到初始状态,因为这对解决问题没有任何帮助。
任何帮助,将不胜感激
小智 8
据我了解,自定义属性仅作为客户端上 id 令牌的额外元数据提供,它与身份验证过程完全无关,或者存在于访问令牌的 JWT 令牌中。访问令牌有效负载包含有关经过身份验证的用户的声明,而不是自定义添加的属性。您可以参考此内容来了解有关它们的更多信息。
以下是 AWS 文档中的示例 ID 令牌负载:
{
"sub": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"aud": "xxxxxxxxxxxxexample",
"email_verified": true,
"token_use": "id",
"auth_time": 1500009400,
"iss": "https://cognito-idp.us-east-1.amazonaws.com/us-east-1_example",
"cognito:username": "janedoe",
"exp": 1500013000,
"given_name": "Jane",
"iat": 1500009400,
"email": "janedoe@example.com".
"jti": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"origin_jti": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12990 次 |
| 最近记录: |