【发布时间】:2015-09-23 14:36:22
【问题描述】:
我正在编写一个带有基于 passport.js 的身份验证的 nodejs 应用程序。它允许用户向其他用户发送消息,其中仅允许经过身份验证的用户检索由他们发送或以他们作为接收者的消息。我计划实现多个身份提供者,例如 facebook、google,也许还有本地身份验证。
我使用 mongoose 设置的用户架构看起来像这样:
var userSchema = new mongoose.Schema({
googleId: String,
facebookId: String,
email: { type: String, required: true },
}, {
strict: false
})
module.exports = mongoose.Model('User', userSchema)
现在我想到的方法是这样的:
- 向用户显示登录页面
- 在此页面上,他们可以选择身份提供者
- 他们被重定向到授权页面,授予对请求范围的访问权限,被重定向到我指定的回调 URL
- 已存在具有相应 ID 的用户或已创建新用户。
现在,当他们尝试接收消息时,我想再次对他们进行身份验证,以授予获取消息的授权。他们如何进行身份验证并不重要,只要是我配置的任何策略即可;但是没有 app.get('/messages', passport.authenticate('any'), done) 这样的东西,那么我该如何处理呢?
【问题讨论】:
标签: node.js authentication express oauth passport.js