我有多个应用程序,用户通过认知登录进行登录。目前,他们必须使用相同的凭据登录每个应用程序。所有应用程序都位于同一域中。我需要允许用户登录到一个位置,并在他们尝试访问新应用程序时验证其令牌。如果有效,则他们已登录另一个应用程序,否则他们尚未登录。
tl;博士
appA
和 appB
(client.mysite.com/appname)appA
并且
appB
分别使用相同的登录凭据appA
然后他们尝试访问 appB
他们经过验证并允许进入它们都有相同的用户池和身份池。我打电话给
Auth.currentAuthenticatedUser()
。根据我的理解,如果它们具有相同的 UP 和 IP id 并且在同一域上,则应该允许访问。
如何在没有实际登录的情况下在第二个应用程序上进行身份验证?
平台:Angular 15
库:@aws-amplify/ui-angular:4 aws-amplify:5
我想说,如果您的应用程序位于同一域中,您可以使用 cookie 来跨应用程序存储和共享身份验证信息。
用户登录后,您可以使用用户信息设置 cookie(不要忘记将
Secure
属性与您的 Domain
和 SameSite=None
作为选项一起使用。您可以阅读有关如何使用 cookie 的更多信息在文档上:https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies)
之后,在您的其他应用程序中,您将能够从 cookie 中读取数据,并且将有您将用户视为已登录所需的一切。