2015-01-21 118 views
0

示例代碼(採用護照本地的角fullstack):Angular.js Express.js護照註銷重定向

app.get('/logout', function(req, res) { 
    req.logout(); 
    console.log('testing123'); 
    res.redirect('/login'); 
} 

每當這個代碼執行了一會兒,該URL顯示/註銷回覆到之前主頁。註銷功能似乎正在運行,我試圖設置一個路徑客戶端使用角持有一個空白的HTML模板來確認。該錯誤在重定向中,來自導航欄上的鏈接。另外,瀏覽器(不是它應該)或終端上的控制檯中不會出現日誌。

嘗試的解決方案:

1)添加在路由客戶端來創建測試模板,以確保app.get(URL /註銷)已經被調用和註銷()已實施。

2.)將重定向路由更改爲另一個模板。 (同樣的效果)

3.)檢查佔用客戶端和快速服務器的未註冊路由的路由恢復。這是通過包含在實例化和測試的'/ logout'路線兩側來完成的。

任何幫助,非常感謝。謝謝。

分辨率:
$ HTTP GET請求,並在成功時,重定向使用$ location.path()

回答

0

如果路由是由XHR請求命中登錄應用程序將不會去任何地方,因爲你沒有重定向瀏覽器只是ajax調用,你必須實現監聽你的角度應用程序的註銷呼叫響應,並清除你的標題和重定向瀏覽器

+0

所以,如果我正確理解這一點,我廢棄註銷呼叫服務器側,聽取退出xhr請求的響應客戶端,並從瀏覽器中清除我的頭文件?難道我不能只是一起避免xhr,並且只需通過onclick事件清除客戶端的頭部? – eciice 2015-01-21 02:58:18

+0

如果您不需要執行任何服務器端工作(例如更新註銷時間或禁用令牌)或清除Cookie,則所有這些都基於您的架構 – 2015-01-21 03:06:14

+0

如果我嘗試將中間件添加到 'app.get( '/',中間件,函數(req,res){res.send(200); }' 在中間件檢查會話的用戶的情況下,是否應用相同的原則?是否必須處理重定向到如果您的認證邏輯依賴於處理程序或中間件功能,那麼客戶端的登錄頁面? – eciice 2015-01-21 17:05:14