2017-01-18 28 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