Стратегия Passport для аутентификации с помощью учетных записей Microsoft (также известной как Windows Live) с использованием API OAuth 2.0.
Этот модуль позволяет вам проходить аутентификацию с помощью Windows Live в ваших приложениях Node.js. Подключив Passport, аутентификацию Windows Live можно легко и незаметно интегрировать в любое приложение или платформу, поддерживающую промежуточное программное обеспечение в стиле Connect, включая Express.
$ npm install passport-windowslive
Прежде чем использовать passport-windowslive
, вы должны зарегистрировать приложение в Microsoft. Если вы еще этого не сделали, новое приложение можно создать в разделе управления приложениями Live Connect. Вашему приложению будет присвоен идентификатор клиента и секрет клиента, которые необходимо предоставить стратегии. Вам также потребуется настроить URL-адрес перенаправления, соответствующий маршруту в вашем приложении.
Стратегия аутентификации Windows Live аутентифицирует пользователей с помощью учетной записи Windows Live и токенов OAuth 2.0. Идентификатор клиента и секрет, полученные при создании приложения, предоставляются в качестве опций при создании стратегии. Стратегия также требует обратного вызова verify
, который получает токен доступа и дополнительный токен обновления, а также profile
, содержащий профиль Windows Live прошедшего проверку подлинности пользователя. Обратный вызов 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, могут использовать этот пример в качестве отправной точки для своих собственных веб-приложений. В примере показано, как аутентифицировать пользователей с помощью Facebook. Однако, поскольку и Facebook, и Windows Live используют OAuth 2.0, код аналогичен. Просто замените ссылки на Facebook соответствующими ссылками на Windows Live.
Ваш запрос на аутентификацию должен включать wl.offline_access
, как указано в областях и разрешениях.
паспорт.authenticate('windowslive', {scope: ['wl.offline_access'] })
Набор тестов расположен в каталоге test/
. Ожидается, что все новые функции будут иметь соответствующие тестовые примеры. Убедитесь, что весь набор тестов пройден, выполнив:
$ сделать тест
Ожидается, что все новые разработки будут проходить тестирование. Патчи, увеличивающие тестовое покрытие, с радостью принимаются. Отчеты о покрытии можно просмотреть, выполнив:
$ сделать test-cov $ сделать view-cov
Это программное обеспечение предоставляется вам с открытым исходным кодом бесплатно. Время и усилия для разработки и поддержки этого проекта посвятил @jaredhanson. Если вы (или ваш работодатель) получите выгоду от этого проекта, рассмотрите возможность финансового вклада. Ваш вклад поможет продолжить усилия по созданию этого и другого программного обеспечения с открытым исходным кодом.
Средства принимаются через PayPal, Venmo и другие методы. Любая сумма приветствуется.
Лицензия MIT
Авторские права (c) Джареда Хэнсона, 2011–2016 гг. <http://jaredhanson.net/>