只是阅读文档,它们看起来与我非常相似,因此我无法真正辨别为什么要使用一个文档。尽管身份令牌看起来更好,因为它具有来自用户池的自定义属性(例如:custom:blah
和默认属性,如name
和email
)。
现在,我正在使用一个将访问令牌传递回浏览器的应用程序,以便它可以使用它进行ajax REST调用(有一个auth过滤器期望该访问令牌并对其进行验证)。我可以只使用id令牌切换访问令牌吗?当前的验证逻辑是仅从sub
访问令牌中获取字段(uuid),但是此sub
字段也存在于身份令牌中(以及几乎所有其他属性,除了aud
我不需要的属性外)。我只想确保我理解此权利,因为这使我感到困惑,为什么两个令牌都存在并且看起来如此相似。
id_token供您的应用程序处理,因此您可以获取用户的所有个人详细信息,例如他们的姓名,年龄,电子邮件地址等。通常来说,您不应将此令牌发送到其他任何地方,因为它包含敏感的用户数据。
access_token用于调用其他“外部”服务(通过外部,我包括其他AWS服务-这些通常通过http调用)。它为您的用户提供服务访问授权,而不必包括他们的个人详细信息。
从表面上看,这似乎有点令人困惑,因为您实际上可以使用与access_token相同的方式使用id_token来访问服务。但是,良好的做法是在这种情况下使用access_token,如果后端服务需要用户数据,则应在Cognito中自行查找。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句