代码之家  ›  专栏  ›  技术社区  ›  Putnik

如何在浏览器中使用aws-cognito认证用户?

  •  3
  • Putnik  · 技术社区  · 7 年前

    我需要使用带用户名/通行证的aws cognito验证浏览器(而不是移动应用程序)中的用户,而不是fb/google idproviders。

    有很多文档,但它们似乎是单独的块,要么不完整,要么不符合要求,要么不适合彼此:(

    我创建了cognito用户池,然后创建了标识池,并将用户池绑定到idpool,然后我就卡住了。不知道要使用哪个库以及如何使用它。 我发现最接近的是:

    我只需要简单的HTML表单和用户名/密码,将请求发送给Cognito,并在下一页加载过程中检查密码是否正确。如果这很重要,我将使用AWS lambda作为后端来处理未来的任务。

    我该怎么做?我的案例有教程/文档吗? 谢谢您。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Ashan    7 年前

    您可以为您的用例使用AWS Cognito用户池托管的UI。最简单的认证形式是使用隐式授权。

    For more information about setting up Hosted UI refer Add an App to Enable the Hosted Web UI. . 这将创建一个用户池,用户可以在其中自行注册(如果计划对此进行限制,则需要使用AWS Web控制台、Cognito用户池或使用其SDK添加用户)

    步骤如下。

    • 设置Cognito托管的UI并注册应用程序域。这将为您创建登录/注册页面,其中每个页面都有一个唯一的URL。您需要做的是,如果用户没有经过身份验证(我们稍后讨论如何检测它),您需要将用户重定向到登录页面。
    • 在登录URL中,还需要指定应用程序的重定向回URL,以便在成功登录后,Cognito将用户重定向回以查询字符串提供令牌的应用程序。
    • 然后,您可以从应用程序内部访问ID_令牌,并使用它来查询后端。
    • 由于ID_令牌是一个JWT令牌,因此您可以在后端使用在 Cognito token endpoint .
    • 要实现JWT验证,您还可以参考 Cognito JWT Token validator nodejs模块。

    注意:如果您需要让用户登录更长时间(超过1小时),您可能需要使用代码授予流,该流将返回一个刷新令牌,该令牌可用于以编程方式检索新的ID_令牌。