2017-03-21 187 views
1

我正在实现一个Web应用程序,客户端和服务器运行在不同的域上。跨客户端身份服务器到客户端传递访问令牌

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

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

由于客户是坐在不同的领域,我不能够使用response.sendRedirect(baseUrl)

通过在页眉或饼干access_token是否有任何其他方式在这样的情况下处理基于令牌的认证。

+0

这是一个非常好的问题。我有几个链接可能会或可能不会帮助https://developers.google.com/identity/sign-in/web/backend-auth https://developers.google.com/identity/protocols/CrossClientAuth – DaImTo

+0

不确定关于谷歌的实施。有重定向URI的选项吗?如果是这样,访问令牌将作为参数返回到地址中。 – Eddie

+0

@DaImTo感谢您的输入,但此链接提供了在我寻找相反方向时将令牌从客户端传递到服务器的方式。 –

回答

0

,同时通过各种选项扫描我在两个解决方案来:

  1. 链接显示了如何从一个页面设置cookie的另一个 http://subinsb.com/set-same-cookie-on-different-domains

    在服务器端成功认证后,它暂时重定向到一个本地屏幕将在内部按照上述链接中的说明调用客户端。

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

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

相关问题