我对亚马逊Cognito有疑问。
我想要实现的是为用户记录设置默认自定义属性。
理想情况下,如果我可以在用户池中默认设置它,那将是很好的,例如"custom:domain": "some name"
。但是我无法找到一个这样的例子,或者可能在Lambda的Pre sign-up
触发器中设置它,但我也没有找到它的例子。我做了什么,当用户进行身份验证时,我获得了用户属性并使用updateAttributes
设置了所需属性(我使用amazon-cognito-identity-js
)。我遇到的这种方法的缺点是,在第一次用户登录时,他首先获得令牌,然后才获得它设置的自定义属性。因此,在首次登录时,令牌中会遗漏此属性。我想问一下做这种员工的最佳方法是什么?如果我的变体合适,我如何在更改用户属性后更新用户令牌,以便它们出现在该令牌中。
答案 0 :(得分:1)
您将在令牌刷新时获取令牌中的新属性。但是,SDK并未提供手动刷新令牌的方法。我们会将此视为SDK的功能请求。 令牌通常有效一小时,并在SDK过期时自动刷新。因此,您的用户至少会在一小时后获得具有新属性的令牌。
答案 1 :(得分:0)
另一种选择是添加一个Pre令牌生成触发器,该触发器检查该值是否已设置,以及是否未覆盖该值。 http://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html#aws-lambda-triggers-pre-token-generation-example-1如果以这种方式完成,则会在用户第一次获取令牌时设置。