2017-03-21 185 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從服務器請求訪問令牌。

相關問題