2017-02-23 67 views
0

我對MEAN來說很新,而且我正在學習很多東西。目前,我正試圖在用戶不被允許進入網站時在我的頁面上顯示錯誤消息。該頁面包含一個將您重定向到蒸汽登錄的按鈕。您登錄後的蒸汽API發送您的steamid我會再檢查MongoDB的數據庫:在MEAN網站上顯示錯誤信息

app.get('/auth/steam/return', 
    passport.authenticate('steam', { failureRedirect: '/' }),https://stackoverflow.com/users/5333805/luud-van-keulen 
    function(req, res) { 
     UserModel.findOne({ steamid : req.user.id }, function (err, user) { 
      if(!user) { 
       console.log('does not exist'); 
       //Probably have to set the error message here 
      } else { 
       req.session.userid = req.user.id; //Setting the session 
      } 
     }); 

     res.redirect('/'); 
    }); 

,我不能獲得工作的唯一的事情是如何顯示的消息時,不允許用戶(他不在數據庫中)。我想爲AngularJS使用HTML(所以沒有Jade)。

我知道我必須在響應頭文件中設置一個變量,然後使用AngularJS我需要檢查這個變量是否存在。當它存在時它應該顯示包含錯誤信息的div。

問題是我無法使用res.render,因爲我需要重定向。

回答

0

我結束了使用快速閃存。

0

所以在用戶沒有找到該塊,你應該是這樣的:

res.status(401).send("Login failed."); 

然後在客戶端,您可以檢查響應狀態,並顯示mesage。

編輯:如果您在客戶端也需要幫助,請提供您的客戶端代碼。

+0

我一直認爲這些狀態消息是用於HTTP消息的。使用它們顯示登錄消息是否是一種很好的做法? –

+0

如果用戶登錄失敗,則顯示用戶的消息。 401是未經授權的狀態,你一定要發送它,但消息是可選的。如果服務器返回401,您可以添加客戶端邏輯,顯示「登錄失敗」消息。 – paqash

+0

事實上,我寧願去從服務器發送消息,因爲服務器確切知道失敗的原因(即未找到用戶,密碼不正確),而如果您顯示的是基於401狀態的消息,則它只能是一條通用消息。 – paqash