我正在使用 AWS Cognito 用户池对我网站的用户进行身份验证。 用户只需输入用户名(在我的情况下为电子邮件 ID)和密码即可登录应用程序。 登录成功后,在repose中可以看到如下属性。
{
"UserAttributes":[
{"Name":"sub","Value":"XYZ"},
{"Name":"email_verified","Value":"true"},
{"Name":"email","Value":"someone@example.com"}
],
"Username":"someone@example.com"
}
现在我向用户添加了一个新属性,并希望在登录后在响应中返回该属性,但不幸的是没有获得该属性。
有人可以帮助我了解如何在登录后获取用户的所有属性(包括我添加的自定义属性)。我对这个 AWS Cognito 有点陌生。
提前致谢。
答案 0 :(得分:1)
在您的用户池设置中,选择 App Clients,然后单击您的 App Client 下的 Show Details 以将其展开。 在最底部,单击“设置属性读写权限”。现在,您可以选择要在 ID 令牌中显示的任何属性。可读属性下的任何内容都将添加到您的令牌中,然后您可以对其进行解码。
请注意,这仅添加到 ID 令牌而不是访问令牌。
答案 1 :(得分:0)
在此doc中提到的登录后调用fetchUserAttributes
Amplify.Auth.fetchUserAttributes(
attributes -> Log.i("AuthDemo", "User attributes = " + attributes.toString()),
error -> Log.e("AuthDemo", "Failed to fetch user attributes.", error)
);