【发布时间】:2013-12-01 17:09:21
【问题描述】:
我正在使用 Passport 和 NodeJS/Express 应用程序进行用户身份验证,它运行良好。但是,我想使用基本身份验证(类似于 Apache 上的 .htaccess 基本 HTTP 身份验证)锁定某些部署,例如登台服务器。
更清楚地说,我有一个在本地运行所有内容的开发环境。我有一个测试环境,每次构建都会启动。我有一个用于黑盒测试的暂存环境,最后是一个生产环境。我想将基本身份验证应用于暂存环境,以便甚至需要用户/通行证组合才能到达它。通过基本身份验证后,所有其他功能都应该可用。
我尝试过 Express 的内置 basicAuth,效果很好,只是它填充了 Passport 使用的 req.user。因此,我的会话被污染了,因此使用 Passport 登录和注销不再正常工作,因为它认为用户已经登录。
这是我使用 basicAuth 的 sn-p:
// Basic auth (for staging env)
// Note: I'm checking for my dev env just to test this
if (process.env.NODE_ENV == 'development') {
app.use(express.basicAuth('dev', 'abc123'));
}
我可以使用另一种方法来代替 basicAuth,或者我可以使用另一种方法来使用 basicAuth 来实现这一点吗?
【问题讨论】:
标签: javascript node.js authentication express