我想实现一个类似于 StackExchange 的跨域认证系统。这是 stackexchange 使用的流程:
验证用户是否未通过身份验证。
向“/users/login/global”发出请求,服务器以令牌响应。
使用先前获取的令牌(在步骤 2 中)向 stackauth.com/auth/global 发出请求。服务器返回一个加载时执行的 javascript。
javascript 使用令牌向身份验证服务器发出另一个 ajax 请求,并返回另一个令牌 (authToken)。
客户端使用 authToken 向“/users/login”发出另一个请求。服务器返回一个会话 cookie。
在我尝试自己实现它之前,我想澄清一些步骤。身份验证服务器和当前的 stackexchange 在后端是如何交互的?第一个和第二个令牌分别做什么?有什么我应该注意的安全问题吗?