使用 OAuth 2.0 API 對 Microsoft 帳戶(又稱 Windows Live)進行身份驗證的 Passport 策略。
此模組可讓您在 Node.js 應用程式中使用 Windows Live 進行身份驗證。 透過插入 Passport,Windows Live 驗證可以輕鬆且不顯眼地整合到任何支援 Connect 式中間件(包括 Express)的應用程式或框架中。
$ npm install passport-windowslive
在使用passport-windowslive
之前,您必須向 Microsoft 註冊一個應用程式。 如果您尚未這樣做,可以在 Live Connect 應用程式管理中建立新應用程式。您的應用程式將獲得一個客戶端 ID 和客戶端金鑰,需要將其提供給策略。 您還需要設定與應用程式中的路由相符的重定向 URL。
Windows Live 驗證策略使用 Windows Live 帳戶和 OAuth 2.0 令牌對使用者進行身份驗證。 建立應用程式時獲得的客戶端 ID 和金鑰在建立策略時作為選項提供。 該策略還需要一個verify
回調,該回調接收存取權杖和可選的刷新令牌,以及包含經過驗證的使用者的 Windows Live 設定檔的profile
。 verify
回呼必須呼叫cb
提供使用者來完成身份驗證。
passport.use(new WindowsLiveStrategy({ clientID: WINDOWS_LIVE_CLIENT_ID, clientSecret: WINDOWS_LIVE_CLIENT_SECRET, callbackURL: "http://www.example.com/auth/windowslive/callback" }, function(accessToken, refreshToken, profile, cb) { User.findOrCreate({ windowsliveId: profile.id }, function (err, user) { return cb(err, user); }); } ));
使用passport.authenticate()
指定'windowslive'
策略來驗證請求。
例如,作為 Express 應用程式中的路由中間件:
app.get('/auth/windowslive', passport.authenticate('windowslive', { scope: ['wl.signin', 'wl.basic'] })); app.get('/auth/windowslive/callback', passport.authenticate('windowslive', { failureRedirect: '/login' }), function(req, res) { // Successful authentication, redirect home. res.redirect('/'); });
使用流行的 Express Web 框架的開發人員可以參考範例作為自己的 Web 應用程式的起點。 此範例展示如何使用 Facebook 對使用者進行身份驗證。 不過,由於 Facebook 和 Windows Live 都使用 OAuth 2.0,因此代碼類似。 只需將對 Facebook 的引用替換為對 Windows Live 的相應引用即可。
您的身份驗證請求必須包含wl.offline_access
如範圍和權限中詳細說明。
Passport.authenticate('windowslive', { 範圍: [ 'wl.offline_access' ] })
測試套件位於test/
目錄中。 所有新功能預計都有相應的測試案例。 透過執行以下命令確保完整的測試套件通過:
$ 進行測試
所有新功能開發預計都會進行測試覆蓋。 增加測試覆蓋率的補丁很容易被接受。 可以透過執行以下命令查看覆蓋率報告:
$ 進行測試-cov $ 製作視圖-cov
該軟體作為開源軟體免費提供給您。 @jaredhanson 投入了開發和維護該專案的時間和精力。如果您(或您的雇主)從該專案中受益,請考慮提供財務捐贈。 您的貢獻有助於繼續開發此軟體和其他開源軟體。
透過 PayPal、Venmo 和其他方式接受資金。 任何金額均不勝感激。
麻省理工學院許可證
版權所有 (c) 2011-2016 Jared Hanson <http://jaredhanson.net/>