2017-05-05 58 views
0

req對象是否可以在HTTP請求中進行操作?那麼請求有可能爲req.token設置一個值嗎?我知道像req.queryreq.body等各種對象屬性可以從外部自由更改,但是可以添加新屬性,如req.token或者此示例代碼安全嗎?請求中是否可以處理req對象

var auth = function (req, res, next) { 
    if (isValid()) { 
     req.token = getToken(); 
     return next(); 
    } 
} 

app.get('/foo', auth, function(req, res) { 
    if (req.token) { 
     // valid request 
    } else { 
     // invalid request 
    } 
}); 
+1

是的,你可以這樣做,雖然推薦的方法是使用req.locals。請參閱http://stackoverflow.com/questions/33451053/req-locals-vs-res-locals-vs-res-data-vs-req-data-vs-app-locals-in-express-mi –

+1

可能的重複[req.locals與res.locals與res.data比較req.data與Express中間件中的app.locals](http://stackoverflow.com/questions/33451053/req-locals-vs-res-locals -VS-RES-DATA-VS-REQ數據-VS-APP-當地人 - 在-EXPRESS-MI) –

回答

1

是的,它是安全的,前提是你不要覆蓋有特殊的含義(那些非詳盡的清單,可以發現here)的屬性。

這是一種常用的技術,它也顯示在the Express documentation

相關問題