Cross-client 身份服务器向客户端传递访问令牌

Cross-client Identity server to client passing access token

我正在不同域上使用客户端和服务器 运行 实施 Web 应用程序。

我已经在服务器端使用 spring 安全实现了基于 google 的身份验证。

现在,当客户端请求登录 API 时,服务器将其重定向到 google 页面进行身份验证。认证完成后,服务器需要发送access_token给客户端。

由于客户端位于不同的域,我无法在 header 中传递 access_token 或使用 response.sendRedirect(baseUrl)

的 cookie

在这种情况下,是否有任何其他方法来处理基于令牌的身份验证。

在浏览各种选项时,我遇到了两个解决方案:

  1. Link 显示如何将 cookie 从一个页面设置到另一个页面 http://subinsb.com/set-same-cookie-on-different-domains

    在服务器端成功验证后,它会暂时重定向到本地屏幕,该屏幕将在内部调用客户端,如上文所述link。

  2. 其他方式是-
    要发出登录请求,客户端将弹出一个单独的 window 并随请求传递一个 secure_id。此外,客户端临时存储此 secure_id。 服务器完成身份验证后,它会重定向到客户端页面,通知客户端关闭弹出窗口 window.

    弹出 window 关闭后,客户端可以使用它存储的 secure_id 从服务器请求访问令牌。