使用 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/>