2015-09-16 39 views
0

我試圖爲內部應用程序實現OAuth2身份驗證方法。該過程看起來很簡單:如何使用AngularJS獲取重定向響應的標題

  1. 用戶按下「登錄」按鈕
  2. 用戶被重定向到包含OAuth2 server
  3. 收到的請求code被髮送到OAuth2 server獲得access_token
  4. 由於頁面一旦收到access_token用戶正被重定向回初始頁面,並且在此重定向期間正在設置特殊標頭Header["Access-Token"]

身份驗證在這種情況下工作正常,我唯一擁有的是我不能在重定向回到初始頁之後閱讀Header["Access-Token"]

使用interceptors我可以攔截正在從應用程序發送的請求(例如REST API請求),但不能在頁面加載過程中攔截正在發送的請求。

是否有任何解決方案使用Angular的這個問題?

+0

您是否終於可以解決此問題?我卡在完全相同的情況下,無法讀取我的自定義標題重定向響應? – Aubergine

+0

@Aubergine,不幸的是,沒有。我不得不使用cookies來代替...... – WhiteAngel

+0

@WhiteAngle rofl,正是我昨天所做的:-)我相信這是一個角度丟失的上下文和瀏覽器吞嚥標題。由於重定向響應會強制瀏覽器在加載角度之前獲取視圖(html任何內容)。這只是一個猜測。 – Aubergine

回答

1

我希望這會有所幫助。

  • 您可以將用戶重定向到「originalURL /」 +的access_token從服務器爲響應將被間接地發送到端點上的服務器
  • 然後,如果你不想暴露,你可以設置的access_token它的cookie/session中的值,並將其從url中刪除。
  • 警報如果該標記包含「/」或「#」,請將其替換爲一些關鍵字,同時從服務器重定向,因爲Angular在路由中使用「/」和「#」。所以如果你的url包含這些字符,它會將你重定向到默認路由。
相關問題