仅针对API请求的Passport基本身份验证

时间:2014-12-03 01:50:11

标签: express passport.js

我正在写一个快速/节点/角度应用程序。当客户端角度控制器需要一些数据时,他们使用返回JSON的端点从服务器请求它。

此端点位于某些passport.authenticate('local')中间件之后,但此端点正是我们对公共API所需的。

我们的API使用passport.authenticate('basic')(基本http身份验证)。

我正在尝试找到一种方法来为两者使用相同的URL,但我不希望用户访问我的网站而未登录以查看http身份验证窗口。我不知何故需要告诉“这是一个API请求,还是来自网站的xhr请求”

例如,我希望以下网址适用于本地认证的用户(已经通过/login路由进行了身份验证)用于API用户:

app.get('/api/v1/tasks', passport.authenticate('basic'), tasks.list);

我所知道的唯一替代方案是将这些分为两个不同的URL,一个用于内部使用的站点,另一个用于公共API。也许这是一个更好的安全/组织策略?

0 个答案:

没有答案
相关问题