我想我有一個問題將會話從Node後端傳遞到我的React前端,但我實際上是一種我不知道我不知道的情況。誰能幫忙?React前端和Node後端之間的身份驗證
這裏的問題:
我有在後端這條路線..
app.get('/account', ensureAuthenticated, function(req, res){
res.status(200).json({ user: req.user });
});
其在成功蒸汽Passport身份驗證吐出用戶數據JSON。當我檢查由EJS視圖生成的帳戶頁面時,我可以驗證此作品。
在React服務器上,我有一個帶有Steam驗證鏈接的根頁面。它成功進入Steam,然後重定向回根頁面。
當我嘗試從根React頁面向JSON提取'/ account'時,響應不再是JSON,而是來自後端'/ account'模板的HTML,但我當然需要JSON。
我認爲它不認可我爲已認證,因爲使用Chrome的高級REST客戶端擴展進行GET請求時,我得到的HTML響應相同。 我還應該注意到,我通過Create React App的代理功能代理API服務器。
更新:問題已解決。
fetch('https://example.com:1234/users', { credentials: 'include' })
原來'req.isAuthenticated()'將返回這個功能我打電話路線上的錯誤裏面:如果 '函數ensureAuthenticated(REQ,水庫,旁邊){ (req.isAuthenticated()){ return next(); } res.redirect('/'); }' 響應是HTML從此函數被路由到根目錄。 如果我告訴ensureAuthenticated返回next(),它至少會在測試路由上吐出一些JSON。 不確定從哪裏去。 –