[МУЗЫКА]
Теперь, когда мы поняли о OAuth 2 и о том, как Facebook поддерживает OAuth 2,
давайте перейдем к этому упражнению, где мы настроим наше
приложение экспресс-сервера, чтобы использовать Facebook в качестве поставщика OAuth 2 для нашего сервера.
И в то же время для нашего клиентского приложения.
В этом упражнении мы будем полагаться на паспорт, который
мы уже настроили в нашем экспресс-приложении.
Мы настроим новую стратегию аутентификации с
помощью Facebook, используя этот модуль токенов Facebook.
Чтобы начать работу с этим упражнением,
перейдите на страницу https//developers.facebook.com/apps.
Теперь, здесь вы будете регистрировать клиентское приложение, которое в основном
ваш сервер, дополнительный сервер, выступающий в качестве клиентского приложения для Facebook.
И тогда мы зарегистрируем там клиентское приложение.
А затем получить идентификатор приложения и секрет приложения от Facebook.
Теперь, очевидно, это само собой разумеется, что вам нужно иметь учетную запись Facebook
, чтобы иметь возможность настроить это.
Если у вас нет учетной записи Facebook и вы не хотите делать это упражнение,
то нет никакого вреда в том, чтобы не делать это упражнение.
Но, конечно, для выполнения этого упражнения OAuth 2
вам нужна учетная запись Facebook для настройки вашего поставщика OAuth на Facebook.
Таким образом, перейдя на этот сайт,
Developers.facebook.com/apps, вы заметите, что вам
нужно будет войти в систему, чтобы продолжить, если вы не вошли в свой браузер.
Теперь вы можете видеть, что я уже настроил несколько приложений здесь и
протестировал их.
Теперь, чтобы создать новое приложение, нажмите на Добавить новое приложение.
А затем вы можете указать имя своего приложения.
Так что я могу сказать Confusion3, а затем мы можем предоставить контактный адрес электронной почты.
А затем следуйте процедуре, чтобы создать новое приложение здесь.
И как только приложение будет создано, вы сразу заметите, что
есть идентификатор приложения, который был создан для вашего приложения.
А затем для этого конкретного приложения.
Поэтому, если вы идете на панель мониторинга, вы увидите
две части информации, которые вам действительно нужны, чтобы продолжить работу.
Одним из них является идентификатор приложения, поэтому убедитесь, что вы делаете копию идентификатора приложения.
А второй - это секрет приложения.
Таким образом, вы можете ввести кнопку show здесь, а затем вы получите секрет приложения.
Секрет здесь, так как вы можете видеть, что эти два - это не что иное, как строки ASCII.
Поэтому сделайте копию этого, потому что вам нужно настроить свой экспертный сервер, а
также клиентское приложение с этими двумя фрагментами информации.
И как только ты получишь это,
мы сможем продолжить остальную часть упражнения.
Вам нужно будет перейти на панель мониторинга вашего приложения.
А в настройках, как вы видите, в основных настройках здесь
просто добавляете платформу сайта здесь.
А затем укажите URL-адрес как https//localhost3443.
И сохраните изменения здесь в вашем приложении здесь.
После добавления на сайт здесь перейдите к дополнительным настройкам.
А затем нажмите «Да», чтобы сказать родное или
настольное приложение здесь и сказать «да», а затем сохранить изменения.
А в базовом параметре в доменах приложения введите
https://localhost:3443 и сохраните изменения.
Далее перейдите к инструкциям по упражнению для этого упражнения.
И вы увидите, что есть файл index.html, который
я предоставил в ресурсах упражнений.
Загрузите этот файл index.html, а затем переместите его в общую папку.
Итак, давайте загрузите этот файл index.html.
Затем, перейдя в папку ConfusionServer в общей папке,
вы видите, что у меня уже есть файл index.html.
Я собираюсь заменить это на загруженный файл index.html
, который я только что получил.
Я сохранил это на своем рабочем столе.
Поэтому я просто собираюсь вытащить этот index.html, а
затем заменить файл index.html в общей папке моего ConfusionServer.
Далее, перейдя в редактор, давайте откроем файл index.html.
И если вы откроете его, вы увидите, что я уже настроил
код JavaScript здесь.
Этот код JavaScript, который я получил от Facebook, где они
указывают, как вы можете настроить приложение Dev, используя это.
Итак, я скопировал это из инструкций Facebook.
В частности, вы заметите, что в этом файле index.html
есть это поле AppID.
Вы собираетесь заменить это поле AppID на
идентификатор клиента, который вы получили, зарегистрировав свое приложение на Facebook.
Итак, здесь я заменяю идентификатор этого клиента
на идентификатор моего приложения, которое я зарегистрировал на Facebook здесь.
И вам нужно сделать тот же шаг с приложением,
которое вы регистрируете на Facebook, с идентификатором приложения, который вы получаете из Facebook.
А затем сохраните изменения в index.html.
Эта страница index.html, которая у меня есть здесь, создаст
кнопку входа на странице index.html, которая при нажатии
поможет нам войти в Facebook, а затем получить токен доступа от Facebook.
Далее, перейдя в папку ConfusionServer,
мы установим модуль токенов паспорта Facebook.
Таким образом, в командной строке введите npm установите
Passport-Facebook-токен и
установите этот модуль узла.
И, как вы можете видеть, я использую версию 3.3.0 в этом курсе.
Возвращаясь к редактору, откройте config.js.
И в config.js я собираюсь добавить
свойство под названием «facebook» в мой файл config.js.
И внутри здесь я
настрою свой ClientiD и
ClientSecret.
Теперь ClientiD будет именно то, что вы получите от Facebook.
Вот и секрет клиента, как вы видели, когда вы зарегистрировали свое заявление.
Вы получаете вторую строку, поэтому скопируйте эту строку, а
затем вставьте ее в ClientSecret здесь.
Теперь убедитесь, что это вставлено как строка здесь.
Аналогичным образом, вставка в ClientSecret в мой файл config.js.
Таким образом, настройка этого здесь поможет мне использовать эти два, где мне нужно в моем коде.
Далее, как мы поняли, всякий раз, когда
пользователь входит в систему, а затем получает токен доступа и передает его на наш экспресс-сервер.
Экспресс сервер будет использовать этот токен доступа и перейти и
получить информацию о файле с сервера Facebook 0 должен.
И затем, как только он получит информацию профиля, то наш экспресс-сервер
создаст новую учетную запись пользователя в нашем приложении.
И используйте идентификатор Facebook в качестве индекса в этой учетной записи.
Поэтому, чтобы учесть это,
мы перейдем в файл user.js, где мы определим нашу модель.
Таким образом, в дополнение к имени и фамилии,
я также добавлю в поле здесь под названием FacebookID,
который имеет тип String здесь.
FacebookID будет хранить идентификатор FacebookID
пользователя, который прошел в токене доступа.
На следующем шаге я покажу вам, как настроить это.
Затем мы настраиваем нашу стратегию Facebook, используя паспорт токен Facebook..
Когда пользователь передает токен доступа,
то вы собираетесь получить профиль, а затем настроить учетную запись для
этого пользователя на нашем локальном сервере здесь, на нашем экспресс-сервере здесь.
Мы будем инициализировать имя и фамилию и FacebookID.
Но, конечно, эта конкретная учетная запись не будет иметь пароля или,
скорее, хэша, установленного с этим.
Потому что, если пользователь делает вход с помощью этой учетной записи, то им придется использовать свою
часть входа в Facebook для того, чтобы войти в наше приложение.
Далее мы перейдем к аутентификации файла dark.js.
Таким образом, здесь мы настраивали все наши различные
стратегии аутентификации паспортов.
Поэтому здесь в дополнение к стратегии jwt и
локальной стратегии, которую я настроил здесь,
позвольте мне создать FacebookTokenStrategy здесь.
А затем установите требуемый пароле-facebook-токен.
И это даст нам новую стратегию, которую мы можем
настроить в нашем паспортном модуле здесь.
Итак, спустившись в код здесь, прямо там,
в конце этого файла, я создаю
FacebookPassport.use ().
И поэтому здесь я бы указал новую FacebookTokenStrategy здесь.
И тогда мы уточним детали этой
FacebookTokenStrategy, прямо в этот момент здесь.
Итак, в этой FacebookTokenStrategy, как мы подходим к этой проблеме?
Позвольте мне просто обернуть слово обернуть, чтобы вы могли увидеть полный код.
Таким образом, для FacebookTokenStrategy, мы начнем, сказав сначала.
Первая часть FacebookTokenStrategy принимает ClientiD.
Который у нас есть конфигурация в Config.Facebook.clientid здесь,
и клиент, Secret,
который также мы настроили в, Наш файл конфигурации здесь.
Таким образом, мы будем поставлять это в качестве первого параметра этой стратегии здесь.
А затем второй параметр - это то, где игнорирование
функции обратного вызова, которая приходит в этот момент.
Таким образом, функция обратного вызова здесь получает три значения.
Таким образом, он получает AccessToken,
RefreshToken, профиль и
обратный вызов, как это сделано здесь.
Таким образом, это четыре параметра, которые приходят в функцию обратного вызова, которую мы будем
настраивать на этом этапе.
Поэтому позвольте мне отстукнуть этот код, чтобы он был немного более понятным.
И внутри этой функции обратного вызова, которую я
настраиваю здесь, я сначала скажу user.findone.
Таким образом, мы попытаемся увидеть, если этот конкретный пользователь Facebook
вошел в систему ранее, чтобы учетная запись уже была
настроена, С FacebookID.
Теперь где мы получим FacebookID?
Обратите внимание, что мы получаем этот профиль для пользователя,
приходя сюда, чтобы вы могли видеть, что этот профиль входит в качестве параметра.
Этот профиль будет нести много информации, поступающей из Facebook, что мы
можем использовать в нашем приложении.
AccessToken, конечно, поставляется на сервер пользователем.
Итак, как только мы попытаемся найти хотя бы одного пользователя с идентификатором профиля Facebook.
Так что если этот пользователь существует, то мы уже обнаружили, что пользователь ранее
вошел в нашу учетную запись, используя подход Facebook.
Таким образом, в этом случае мы можем продолжить, иначе мы создадим нового пользователя.
Таким образом, функция обратного вызова здесь будет иметь два
параметра, err и пользователь здесь.
И эта функция обратного вызова, как мы увидим,
хорошо внутри здесь мы проверим, если (err).
Поэтому, если это вызывает ошибку, то, конечно,
нам нужно сделать возврат (err, false).
Таким образом, это сделано, как вы можете видеть, это функция обратного вызова, которая приходит в качестве
параметра этой функции здесь, поэтому
мы будем вызывать сделано с err и false.
Если это не ошибка, то
мы скажем, если (! err
&& пользователь! == null).
Поэтому, если пользователь не является нулевым, так что это означает, что мы нашли пользователя в системе,
который не был ранее с этим конкретным FacebookID, поэтому для пользователя
все, что нам нужно сделать, это вернуть сделано (null,), так как
здесь нет ошибки, а затем мы вернем значение пользователя для этого здесь.
Таким образом, это означает, что если пользователь уже вошел в систему ранее, используя
подход Facebook, то пользователь уже был бы создан.
Итак, этот пользователь будет найден, а затем мы просто передадим обратно этого пользователя.
Если нет, посмотрите, если не часть является более интересной частью этого упражнения.
Если пользователь не существует, то нам нужно создать нового пользователя.
Теперь, чтобы создать нового пользователя, мы скажем user,
= new User, и когда мы создаем нового пользователя,
напомним, что нам нужно передать имя пользователя.
Имя пользователя будет получено из профиля, а
возвращенный профиль Facebook будет иметь поле, называемое DisplayName.
И это поле, которое я собираюсь использовать для создания нового пользователя здесь.
Таким образом, мы создадим нового пользователя с именем пользователя, установленным
равным DisplayName, и после того, как пользователь
будет создан, то мы скажем user.facebookID, = profile.id.
Таким образом, мы собираемся сохранить идентификатор Facebook пользователя.
Поэтому вернитесь в этот объект профиля здесь, а
затем поместите идентификатор Facebook пользователя в идентификатор профиля.
Так что впоследствии, если тот же пользователь войдет в систему,
этот поиск сможет найти этого пользователя в нашей базе данных.
И тогда мы
скажем user.firstname
= Profile.name.givenName
Таким образом, профиль имеет этот объект имени на нем,
который имеет данное имя и фамилию, связанные с этим.
Это возвращается из профиля пользователя в Facebook.
А также user.lastname мы установим
его в Profile.name.FamilyName.
И затем, как только мы настроим все это, мы скажем user.save.
Таким образом, мы сохраняем изменения для пользователя, а
затем это вернет ошибку и пользователя.
Таким образом, он вернет ошибку, если пользователь не может быть создан,
иначе он вернет созданного пользователя здесь.
Поэтому в этом случае мы скажем, если (err),
то вернем done (err,
false), потому что нам не удалось создать пользователя.
else, пользователь был успешно создан,
поэтому мы вернем done (null, user).
Поэтому, независимо от того, в каком случае,
если пользователь существует, вы найдете этого пользователя и вернете значение.
Если пользователь не существует, вы собираетесь создать нового пользователя на основе
полученного нами профиля Facebook.
А затем добавьте нового пользователя на наш сайт сервера, в базу данных.
Так что это стратегия, которую мы настраиваем для
нашего паспорта, новый FacebookTokenStrategy.
Таким образом, это позволит нам найти пользователя.
Итак, теперь, когда мы настроили наше приложение, чтобы либо
создать пользователя, либо найти пользователя на основе идентификатора Facebook.
Последний шаг, конечно, заключается в том, чтобы ввести
новый маршрут в файл users.js.
Таким образом, в файле users.js вы вспомните, что у нас был маршрут регистрации, который
позволяет пользователю зарегистрироваться для локальной учетной записи с именем пользователя и паролем.
И тогда у вас есть логин, который позволяет пользователю войти в систему, используя имя пользователя и
пароль.
Но теперь мы будем использовать Facebook для входа в пользователя.
Поэтому в этом случае мы скажем, router.get,
а конечная точка будет /facebook/token.
Поэтому, если пользователь отправляет запрос get пользователям/facebook/token,
то мы собираемся аутентифицировать пользователя с помощью
аутентификации на основе Facebook OAuth 2.
Итак, здесь мы скажем passport.authenticate, и
мы будем проводить аутентификацию с помощью стратегии facebook-token.
Напомним, что мы уже настроили это в нашем файле authenticate.js,
поэтому мы настроим стратегию аутентификации facebook-token, а
затем эту функцию обратного вызова, которая получает req, res здесь.
Так что позвольте мне, переключить слово обернуть здесь,
чтобы вы могли видеть, что это router.get на этой конечной точке здесь.
А затем здесь, я настрою это приложение.
Итак, на данный момент, мы бы сказали, if (req.user), теперь заметили, что когда мы вызываем
pasport.authenticate со стратегией facebook-token.
Это, если он будет успешным,
он загрузился бы у пользователя в объект запроса.
Таким образом, к тому времени, когда мы подойдем к этому моменту после
выполнения среднего программного обеспечения pasport.authenticate facebook-token,
вы будете иметь пользователя уже загружен в объект запроса.
Так что если это так, то, скажем, мы создадим токен.
Мы создадим веб-токен JSON здесь, так же, как и мы
создали веб-токен JSON, когда пользователь вошел здесь.
Итак, мы собираемся копировать это здесь.
Authenticate.getToken, так что это даст нам веб-токен JSON.
Таким образом, по сути, пользователь отправляет токен доступа на экспресс-сервер,
экспресс-сервер использует AccessToken, чтобы перейти на Facebook, а
затем получить профиль пользователя.
И если пользователь не существует, мы создадим нового пользователя с этим идентификатором Facebook.
И после этого наш экспресс-сервер сгенерирует
веб-токен JSON, а затем вернет веб-токен JSON нашему клиенту.
Все последующие обращения от нашего пользователя должны будут включать этот
веб-токен JSON, который мы только что вернули, используя этот подход.
Таким образом, на данный момент вам больше не нужен токен доступа Facebook.
Вы можете отказаться от маркера доступа Facebook в этот момент, потому что
веб-маркер JSON - это тот, который держит аутентификацию пользователей активной в
течение любого времени, когда этот веб-маркер JSON активен.
Теперь в дополнение к этому, конечно, нам также нужно сделать эти шаги здесь.
Так что я просто скопирую эту часть здесь.
потому что я собираюсь сделать точно то же самое и в этом случае,
поэтому мы будем вставлять этот код здесь.
Таким образом, мы скажем StatusCode = 200, тип заголовка содержимого, а
затем мы скажем res.json, что вы успешно вошли в систему, и все.
Таким образом, с этим подходом, как вы можете видеть, теперь с помощью вызова этой конечной точки.
Пользовательское приложение, клиент в этом случае,
передаст токен доступа Facebook, который он только что получил от Facebook.
И тогда наш экспресс-сервер будет использовать токен доступа Facebook, чтобы
проверить пользователя на Facebook.
И тогда, если пользователь признан Facebook законным пользователем,
то наш экспресс-сервер вернет токен JSON wd нашему клиенту.
И тогда наш клиент аутентифицируется, а
затем может продолжить выполнение других операций с
использованием токена JSON wd в заголовке всех сообщений запроса.
Впоследствии, так же, как мы сделали с локальной стратегией аутентификации, вот и все.
Таким образом, мы завершили все обновления для нашего приложения, давайте сохраним изменения.
Перейдя к нашему терминалу, давайте запустим сервер здесь,
так что мы скажем npm start, и сервер запущен и работает.
И я заметил, что я набрал порт P-A-S-S-S,
и это вызвало ошибку здесь.
Так что обратите внимание, как легко делать ошибки.
Поэтому позвольте мне пойти и исправить это, а затем вернуться и перезапустить мой сервер.
Поэтому, когда вы сталкиваетесь с такими ошибками, не паникуйте.
Посмотрите вокруг, чтобы увидеть, где проблема, и очень часто,
это будет простая проблема, как эта, которая вызовет ошибки для вас.
Опять же, возвращаясь к users.js, и
вы видите, что в файле authenticate.js
я настроил этот говорящий порт P-A-S-S-S.
Поэтому в файле authenticate.js позвольте мне исправить это в passsport, а
затем сохранить изменения, а затем перезапустить мой сервер.
Теперь перезапустите мой сервер, так что мой сервер теперь работает и работает.
На этом этапе перейдите в браузер.
И в браузере наберите https://localhost3443.
Если эта страница кэшируется здесь, возможно, вы захотите удалить кэш.
Или просто введите localhost: 3343/index.html, и
тогда вы сразу заметите, что в этом index.html
вы увидите эту кнопку под названием «Вход».
Таким образом, мы собираемся нажать на эту кнопку входа, чтобы войти в Facebook.
Давайте войдем, а затем вы придумаете это сообщение здесь.
Что, если вы уже вошли в Facebook ранее,
он запросит разрешение на продолжение в качестве пользователя.
Если нет, то он попросит вас войти в Facebook с, а
затем позволит вам продолжить.
Поскольку я только что вошел в Facebook немного раньше, поэтому
я могу просто нажать «Продолжить».
Теперь откройте консоль JavaScript разработчиков внизу здесь.
И в консоли JavaScript вы видите кучу сообщений, напечатанных здесь.
И тогда, в частности,
откройте этот объект, который вы увидите в консоли JavaScript.
И внутри этого объекта вы увидите этот ответ alt.
И там вы увидите инструмент доступа, присутствующий там.
Теперь это ответ, который получен из Facebook или
из сервера аутентификации нашим приложением здесь.
И я просто скопирую это,
потому что это токен доступа, который Facebook предоставил нам.
Теперь мне нужно дать этот токен доступа моему экспресс-серверу,
чтобы он пошел и проверил мой профиль, а затем позволил мне войти в это приложение.
Поэтому я делаю это сжатым способом
здесь просто потому, что я хотел показать вам, как здесь приходит токен доступа.
И мы скопируем токен доступа, затем я возьму это и
использую Почтальона, чтобы отправить этот токен доступа на мой экспресс-сервер.
Теперь, когда вы создаете веб-приложение, такое как Angular
, или приложение Ionic, или приложение NativeScript, вам не нужно делать все эти шаги.
Теперь, в основном, когда токен доступа возвращается в ваше веб-приложение
, приложение Angular или приложение Ionic или приложение NativeScript,
вы просто захватите этот токен доступа там.
Затем вы передадите этот токен доступа на
сервер Express, используя XMLHttpRequest для получения информации.
Но так как я хотел вручную проиллюстрировать шаги.
Итак, я установил этот index.html с простым
кодом JavaScript, который Facebook предоставляет для меня.
Так что я смогу получить этот токен авторизации, который мы получили из
Facebook.
Поэтому позвольте мне скопировать этот токен авторизации.
Теперь мы отправимся в Почтальон, а затем попробуем
посмотреть, как мы можем получить веб-токен JSON с нашего сервера Express.
Теперь, отправляясь в Почтальон, от Почтальона,
позвольте мне теперь сделать запрос GET для
LocalHost: 3443UsersFacebookToken.
И когда я отправляю этот запрос на эту точку,
другая конфигурация, которую мне нужно сделать здесь, заключается
в том, что мне нужно передать этот токен доступа, который я только что получил.
Теперь, чтобы передать токен доступа в заголовок,
я могу передать его как заголовок авторизации, введя авторизацию.
Но обратите внимание, что значение должно быть набрано как Beta с заглавной буквы B в этом случае,
а затем вставить этот токен доступа, который мы получили из Facebook.
Обратите внимание на столицу B здесь, и
тогда вы можете передать это на наш сервер.
И затем, отвечая с нашего сервера,
вы увидите, что вы бы получили веб-токен JSON с нашего сайта сервера.
Таким образом, это один из способов получить веб-токен JSON, обмениваясь
токеном доступа из Facebook, который вы только что получили с помощью вашего Express сервера.
И ваш Express сервер, в свою очередь, пойдет и
получит информацию о вашем профиле из Facebook, а
затем создаст учетную запись специально для вас, а
затем вернет вам веб-токен JSON, если все будет успешным.
Другой способ передачи этой информации - в заголовке,
вы вводите access_token в качестве ключа.
И в значении вы просто вводите
токен доступа, как это здесь, а затем вы можете отправить запрос и то же самое.
Он снова вернет веб-токен JSON для вас.
А затем вы захватите веб-токен JSON, а затем продолжите с остальными
доступом к вашему экспресс-серверу, используя этот веб-токен JSON.
Третий подход заключается в том, чтобы включить это в
свой URL-адрес в качестве параметра запроса.
Третий подход - сказать токен? access_token=, а
затем вставить веб-маркер JSON в этот параметр запроса.
Не используйте здесь кавычки, только сам веб-токен JSON.
А затем отправьте запрос на ваш сервер.
И тогда даже тогда ваш сервер вернет соответствующий веб-токен JSON.
Таким образом, вы видите три разных способа, которые вы можете проанализировать в своем токене доступа Facebook на
свой сервер, а затем получить веб-токен JSON с вашего сервера.
И после этого, остальные шаги идут так же, как и прежде.
Теперь, чтобы убедить вас, что на самом деле была создана новая учетная запись с
профилем Facebook для этого конкретного пользователя, давайте перейдем к терминалу.
В терминале, в новом окне терминала, я начну волну монго здесь.
Так что в пульсации монго, позвольте мне сказать, используйте смешение.
И тогда я скажу, db.users.find () .pretty (),
а затем распечатаю всех пользователей, зарегистрированных в моей системе.
Вы заметили, что
все три пользователя, которые мы настроили в предыдущих упражнениях, находятся там.
Обратите внимание, кроме того, четвертого пользователя, который только что был добавлен в.
И обратите внимание, что для этого конкретного пользователя у нас еще нет хэша в исходном коде,
но вместо этого настраивается FacebookID этого пользователя, и
имя пользователя настроено таким образом, чтобы оно было таким значением, и первое имя настроено там.
А также фамилия должна была быть настроена здесь, но
я думаю, что в моем коде есть небольшая ошибка.
Поэтому я пойду и проверю его последнюю часть.
Перейти к authenticate.js.
Посмотрим, ошибся ли я здесь.
Там мы идем.
Я набрал имя F-A-M-I-L-Y.
Видишь ли, даже я не о том, чтобы делать ошибки.
Таким образом, это должно быть FamilyName здесь,
user.lastname profile.name.familyName здесь.
Поэтому позвольте мне сохранить изменения, и теперь код должен работать правильно.
Возвращаясь к терминалу,
вы теперь видите, что новый пользователь был создан здесь с профилем Facebook.
Теперь любой последующий раз, когда я пытался аутентифицировать себя с помощью Facebook
, это тот же процесс.
Я получил токен доступа из Facebook, а
затем проанализировал токен доступа к моему экспресс-серверу.
Затем мой экспресс-сервер перейдет на Facebook, извлечет профиль, а
затем проверьте, существует ли пользователь.
И в последующем логине, который я использую Facebook,
я бы обнаружил, что этот конкретный пользователь уже существует в системе.
Таким образом, он просто продолжит движение вперед, и пользователь будет аутентифицирован,
а затем дополнительный сервер выдает веб-токен JSON своему
клиенту, и мы можем продолжить с этой точки и далее, как и раньше.
Таким образом, вы видите, настройка аутентификации на основе OAuth 2 с использованием
поставщика услуг OAuth 2, такого как Facebook, не так сложно при условии, что мы получим
соответствующий модуль аутентификации на основе стратегии аутентификации Facebook.
Как паспорт токен Facebook, который уже заботится
о большей части работы от нашего имени, а затем позволяет нам настроить наш экспресс-сервер
для обработки аутентификации третьей стороны на основе OAuth 2 от Facebook.
С этим мы завершаем это упражнение.
В этом упражнении мы научились выполнять всю аутентификацию OAuth 2
с использованием Facebook в качестве аутентификации OAuth 2.
Это хорошее время для вас, чтобы сохранить изменения, которые вы внесли в
ваш репозиторий Git с паспортом сообщения Facebook.
[ МУЗЫКА]