gpt4 book ai didi

node.js - 如何使用 NodeJS 进行单点登录?

转载 作者:IT老高 更新时间:2023-10-28 23:14:22 25 4
gpt4 key购买 nike

我有多个网络应用程序跨多个域运行。我想实现单点登录,以便用户登录一次即可访问所有应用。

我应该如何实现这个?所有应用都使用 NodeJS 后端。

欢迎提供正确方向的一般指示。

最佳答案

由于您的应用程序在不同的域上运行,因此您无法在客户端计算机上运行的那些应用程序之间共享 cookie 以验证用户。所以不知何故,信息需要在服务器端共享。

我想到的最简单的解决方案是:

  1. 为所有服务器建立一个共享 session 。

  2. 有一个特定的身份验证域,并在需要身份验证时将用户重定向到那里。在那里对用户进行身份验证,并根据需要设置 session cookie 或 token 。

  3. 每当您的任何应用需要身份验证时,将其重定向到身份验证域。身份验证 cookie 将提供给身份验证域以及引用域。在看到您已经通过验证后,身份验证服务器可以将您重定向到具有正确 sessionID 的原始应用程序,该 sessionID 将被设置为该域的 cookie。

  4. 如果未通过身份验证,将要求用户在身份验证服务器上进行身份验证,然后进行重定向。

  5. 只需稍作改动,您就可以使用 token 实现此目的,而无需共享 session 。

在实现之前正确验证状态。机制中的更多状态意味着更多的错误和可能的攻击机会。

考虑将您的应用移至同一子域。如果身份验证机制相同,那么每个人都知道所有应用程序都属于同一家公司。人们也更容易记住同一域上的各个子域,而不是记住所有不同的域。

关于node.js - 如何使用 NodeJS 进行单点登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43631581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com