javascript 网站集成中的网站登录

k4aesqcs  于 2023-03-28  发布在  Java
关注(0)|答案(2)|浏览(121)

所以我有一个要求,我需要处理的情况下,当你登录到一个网站,我们需要被允许登录到另一个网站
让我解释一下,假设有一个父网站和一个子网站,这两个网站都有用户的详细信息,谁将登录。

//PARENT WEBSITE
    <!DOCTYPE html>
    <html>
    <body>
    <iframe src="https://childwebsiteurl?param=parentwebsitetoken" title="this is child website">
    </iframe>
    </body>
    </html>

所以我想一个解决方案,基本上当我登录到父网站,我应该登录到子网站也。
现在我有一个解决方案:当用户登录到父网站时,我将获得一个令牌,然后将该令牌传递给子网站(这里我们假设子网站和父网站的后端都有验证令牌的方法,n都有用户信息),这样我就可以登录到子网站,子网站显示在父网站的iframe中。
我唯一关心的是,是否有一个标准的方法来做到这一点,或者我所建议的是适当的?
先谢了。

vojdkbi0

vojdkbi01#

你需要单点登录解决方案(有很多这样的解决方案),或JWT令牌。
这两种解决方案都可以让你登录到任何网站(父/子/其他),其中你有SSO集成或JWT集成。
对于Angular网站,JWT令牌更合适。

svmlkihl

svmlkihl2#

我想你可以通过简单地在登录父网站后将会话令牌存储在localStorage中来实现这一点。
由于localStorage是唯一的,并且不能在不同的源之间共享,因此您可能希望实现跨域本地存储:(https://github.com/zendesk/cross-storage)。如果父网站和子网站不共享同一个域,或者即使子网站是父网站的子域,也应该这样做。
一旦你得到了这个实现,在子网站的客户端,你可以在挂载时读取你的localStorage,并检查是否有一个有效的令牌,如果有,只需登录用户。
所有这些都假设两个系统都只需要一个有效的令牌来向客户端授予权限,如果您只传递在第一个网站上生成的令牌,则不需要传递用户的登录信息来登录子网站,因为令牌已经为该用户生成。
您也可以将非敏感数据发布到交叉存储以改进自定义,例如用户名。

相关问题