2015-07-06 106 views
0

我正在使用基於passport.js的身份驗證編寫nodejs應用程序。它允許用戶向其他用戶發送消息,其中只有經過身份驗證的用戶纔可以檢索由他們發送的消息或者他們作爲接收者發送的消息。我打算實施多個身份提供商,例如facebook,google,以及可能的本地身份驗證。護照身份驗證 - 任何?

用戶模式我設置使用貓鼬看起來有點像這樣:

var userSchema = new mongoose.Schema({ 
    googleId: String, 
    facebookId: String, 

    email: { type: String, required: true }, 
}, { 
    strict: false 
}) 

module.exports = mongoose.Model('User', userSchema) 

現在我腦子裏想的辦法是這樣的:

  • 向用戶呈現在頁面的標誌
  • 在這個頁面上,他們提供了一個身份提供者的選擇
  • 他們被重定向到授權頁面,授予訪問所請求的範圍,獲得redirec ted到我指定的回調URL
  • 已經有一個用戶使用相應的ID或創建一個新的。

現在,當他們嘗試接收郵件時,我想再次進行身份驗證,以授予獲取郵件的權限。只要它是我配置的任何策略,它們如何進行身份驗證確實無關緊要;然而,沒有app.get('/messages', passport.authenticate('any'), done)這樣的東西,那麼我會如何處理呢?

回答