【问题标题】:Passport Authentication - Any?护照认证 - 有吗?
【发布时间】: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


    【解决方案1】:

    一种选择是将您想要的策略作为数组传递给passport.authenticate([Strategies])。下面的链接很好地说明了这一点。

    passport.js with multiple authentication providers?

    护照作者的另一个例子:

    https://github.com/jaredhanson/passport-http/blob/master/examples/multi/app.js

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-05
      • 2019-03-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-03
      • 2012-07-13
      • 2019-12-07
      相关资源
      最近更新 更多