当前位置: 首页 > 知识库问答 >
问题:

用于跨域身份验证的JWT令牌

经昱
2023-03-14

我试图用PHP为两个主题相连的领域创建一个简单的SSO系统

因此,我想知道是否可以将包含用户用户名的签名JWT令牌从域a存储到本地存储。然后使用来自域B的相同密钥来验证JWT,这将导致成功的身份验证。

我在谷歌搜索了一些答案,我发现其中一些包含了一个中间认证域,它将负责认证。但我只想把我有的两个域联系起来。

谢了。

共有1个答案

柯书
2023-03-14

同源策略不允许从域B到域A的跨源数据存储访问

对存储在浏览器中的数据(如localStorage和IndexedDB)的访问按来源分开。每个源都有自己独立的存储,一个源中的JavaScript不能读写属于另一个源的存储。

通常的解决方案是拥有一个用于身份验证的中心域(可以是a或B),并在发送JWT的域之间进行重定向,或者使用iframe跨域共享身份验证令牌。在这里查看详细信息

OpenId、OAuth和SAML协议可以用于重定向,例如,Google web suite通过iframes连接它们的应用程序(另外,Google是openid-connect提供商)

 类似资料:
  • 在auth-routes示例中,api和nuxt一起启动并使用一个Node.js服务器实例。但是,有时我们应该使用jsonWebToken处理外部api身份验证问题。在这个例子中,将用最简单的方式解释。 官方 auth-module 如果要实现复杂的身份验证流程,例如OAuth2,我们建议使用官方 auth-module 结构 由于Nuxt.js同时提供服务器和客户端呈现,并且浏览器的cookie

  • 我有几个angular应用程序(在不同的子域中)和一个主angular应用程序(在主域中)。我使用@auth0/Angular2-jwt库来管理身份验证。它工作得很好,但对单点登录不起作用。我必须在每个子域登录,我需要这只做一次(在主域或任何子域)。 我尝试过为whitelistedDomains使用正则表达式,但它不起作用: 那么,如果用户登录到主域或任何子域,我如何对所有子域的用户进行身份验证

  • 我读了一些关于“JWT vs Cookie”的帖子,但它们只会让我更加困惑…… > 我想澄清一下,当人们谈论“基于令牌的身份验证与cookie”时,这里的cookie仅指会话cookie?我的理解是,cookie就像一个介质,它可以用来实现基于令牌的身份验证(在客户端存储可以识别登录用户的东西)或者基于会话的身份验证(在客户端存储与服务器端会话信息匹配的常量) 为什么我们需要JSON web令牌?

  • 我正在开发一个具有自己的身份验证和授权机制的REST应用程序。我想使用JSON Web Tokens进行身份验证。以下是有效且安全的实现吗? < li >将开发一个REST API来接受用户名和密码并进行认证。要使用的HTTP方法是POST,因此没有缓存。此外,在传输时还会有安全SSL < li >在认证时,将创建两个JWTs访问令牌和刷新令牌。刷新令牌将具有更长的有效期。这两个令牌都将写入coo

  • 我在做一个全堆栈的web应用程序。我的前端由angular-cli组成,后端由node+Express构建。

  • web上有大量关于使用JWT()进行身份验证的信息。但是我仍然没有找到关于在多域环境中为单点登录解决方案使用JWT令牌时流程应该是什么的清晰解释。 我工作的公司有很多网站在不同的主机。让我们使用example1.com和example2.com。我们需要一个单点登录解决方案,这意味着如果一个用户在example1.com上进行身份验证,我们希望他也在example2.com上自动进行身份验证。 J