2017-01-18 67 views
0

我一直在想我的API,需要對某些事情做一些澄清。API - 認證路線可以保密嗎?

公共網站使用的API的身份驗證路徑是否可以是私有的? 通過認證路線我的意思是,我在哪裏檢查用戶名和密碼是否正確登錄。

我猜API的某些路線可能是私人的,例如,爲照片添加評論,用戶需要登錄並且可以檢查令牌等。

但我不明白怎麼可以這樣做其他路線。

那麼這是否意味着我可以獲得一些網站的路線,並試圖用用戶名和密碼「打」網站?如何讓公司緩解這種情況 - 我認爲一些安全措施會到位?

謝謝。

+0

您需要在您的路由中添加中間件以檢查用戶是否已登錄。 –

+1

也是一個很好的模塊,用於限制某些路由的請求數量。 https://github.com/nfriedly/express-rate-limit –

+1

根據定義,登錄路由不能是私有的,因爲您還不能檢查專用於提供身份驗證憑據的路由上的身份驗證。這就好比把你的前門鈴放在房子裏面,只有那些已經在屋內的人才能真正使用門鈴。 – jfriend00

回答

0

做出路線「私人」你需要創建一個middlware在你的路線做一些

function validationFunction(req, res, next) { 

    // do any checks you want to in here 

    if (can the route proceed) //you decide how to do this 
     return next(); 


    // if the route cannot proceed 
    res.redirect('/'); 
} 

使用它之前完成所有必要的驗證

module.exports = function(app) { 

    app.get('/yourRoute', validationFunction, function(req, res) { 
     //executes what the route should execute 
    }); 

}; 

如果路由是公衆的手段公開並且所有的安全措施都應該被採用,這沒有問題。

+0

我已經做了類似的事情 - 但我想知道的是 - 一個公共網站使用的API的驗證路徑永遠不會是私有的 - 我想這是真的 – userMod2