基本上我只是想知道StackExchange的单点登录系统是如何工作的? 在SE网络中,您需要仅在其中一个网站中登录一次,以便在访问时自动登录其他网站。
我应该如何在自己的网站中实现这样的功能?
我假设它使用驻留在用户浏览器上的cookie,然后使用原始站点对其进行身份验证。如果它是合法的,那么它会自动记录用户。
答案 0 :(得分:0)
您必须实施SAML或oauth2以允许网络上的sso。
如果是SAML,您的子网站将是服务提供商或资源服务器。
虽然您需要设置和身份提供商。
事件的顺序将是这样的。 1.用户点击歌曲网站的网址,该网站是资源服务器,不处理身份验证。 2.验证资源服务器将构建SAML authrequest并在签名后重定向到身份提供者。 Idp在收到authrequest后验证签名。 3.将向用户显示登录表单,用户必须结束登录凭据。 4.用户身份验证后,idp将生成SAMl令牌并重定向回资源服务器。 5.资源服务器将从SAML令牌中提取身份信息,资源服务器将使用会话或cookie登录用户。
取决于您使用的技术我使用simplesamlphp在php中实现了它。