因此,我使用Google认知用户池作为身份提供商。我配置了所有内容,然后我将数据发送到谷歌,谷歌重定向回亚马逊auth端点,然后使用URL中的以下参数重定向回我的应用程序:
AccessToken
ExpiresIn
IdToken
TokenType
现在,我不知道如何使用这些来实际创建一个Cognito" session"进入javascript api工作流程并变为自动(发送,接收和更新令牌)
我如何实现这一目标?
答案 0 :(得分:0)
使用IDToken验证您的API
进行身份验证后,您可以在浏览器中缓存IDToken,并在登录用户从您的Web或移动应用程序请求API调用时使用它。然后,您可以在API端点为每个请求验证令牌。
验证IDToken
有关使用令牌并在API端点验证令牌的更多信息,请参阅AWS documentation on Using Tokens with User Pools。 AWS引入了一个名为aws-amplify的新库,它简化了一些实现。如果您使用AWS API Gateway作为API,则可以使用自定义授权程序Lambda函数进行验证。
存储IDToken和安全性
此外,IDToken是无状态令牌,这意味着它没有与AWS Cognito一起发布的会话。这意味着您在发布后无法撤销它。因此,保持其到期时间非常重要。
要允许您的身份验证API在过期之前发布新IDTokens,您可能需要在后端存储刷新令牌,并在IDToken到期之前使用它来发布新令牌以实现滑动窗口。
注意:在浏览器中存储IDToken,您可以决定使用多个可用的存储选项(例如,Cookies,LocalStorage)。但是,我不打算对安全问题发表评论,因为它本身就是一个长期的讨论,在那里仍然存在着不同意见的领域。目前可用的标准方法是设置服务器端Cookie并实现CSRF。除非您仅使用IDToken启动身份验证并使用会话来代替重复请求,否则实施起来将具有挑战性。