因此,我将使用Google作为身份提供商使用Cognito用户池。我配置了所有内容,然后将数据发送到Google,该数据将其重定向回到Amazon Auth Endpoint,然后将其重定向到我的应用程序,并在URL中使用以下参数:
中的以下参数。AccessToken
ExpiresIn
IdToken
TokenType
现在,我不知道如何使用它们实际上创建一个进入JavaScript API工作流的Cognito" session",并且只是自动变为自动(发送,接收和更新令牌(
我该如何实现?
使用idtoken来验证您的API
验证后,您可以在浏览器中缓存IDToken,并在登录的用户请求中从Web或Mobile应用程序中登录API调用时使用它。然后,您可以在每个请求的API端点处验证令牌。
验证idtoken
有关使用令牌并在API端点验证它的更多信息,请参考有关与用户池使用令牌的AWS文档。AWS引入了一个名为AWS-amplify的新库,它简化了一些实现。如果您正在为API使用AWS API网关,则可以使用自定义授权器lambda函数进行验证。
存储IDToken和Security
此外,iDtoken是一个无状态的令牌,这意味着它没有与AWS Cognito发行的会话。这意味着您在发行后无法撤销它。因此,重要的是要短期到期。
要允许您的身份验证API在过期之前发布新的IDTOKEN,您可能需要将刷新令牌存储在后端中,并使用它在IDTOKEN到期之前发出新令牌以实现滑动窗口。
注意:将IDToken存储在浏览器中,您可以决定使用可用的多个存储选项(例如; cookie,localstorage(。但是,我不会对安全含义发表评论,因为它本身是一个漫长的讨论,仍然有自以为是的领域。当前可用的标准方法是设置Serveride Cookie并实现CSRF。除非您仅使用IDToken来启动身份验证并使用会话,否则实施将是具有挑战性的。