, чтобы сохранить свой прогресс
Реализация социальной аутентификации
Напомним, что этот проект строится на следующем стартовом проекте Glitch или клонируется из GitHub . Основной путь такого рода аутентификации будет следовать в вашем приложении:
- Пользователь нажимает кнопку или ссылку, отправляя их на наш маршрут для аутентификации с использованием определенной стратегии (EG. GitHub)
- Ваш маршрут требует
passport.authenticate('github')
который перенаправляет их в GitHub. - Страница, на которую пользователь приземляется, на GitHub, позволяет им войти в систему, если они еще не были. Затем он просит их одобрить доступ к своему профилю из нашего приложения.
- Затем пользователь возвращается в наше приложение с определенным URL-адресом обратного вызова с их профилем, если он одобрен.
- Теперь они аутентифицированы, и ваше приложение должно проверить, является ли он возвращаемым профилем, или сохранить его в своей базе данных, если это не так.
process.env.GITHUB_CLIENT_ID
. Для этой задачи мы собираемся использовать стратегию GitHub. Получение идентификатора клиента и секретности из GitHub выполняется в настройках профиля вашего аккаунта в разделе «Настройки разработчика», а затем « Приложения OAuth ». Нажмите «Зарегистрировать новое приложение», назовите свое приложение, вставьте URL-адрес на свою страницу с глюком ( не URL-адрес кода проекта ) и, наконец, URL-адрес обратного вызова, вставьте тот же URL-адрес, что и на главной странице, но с помощью «/ auth / github / callback '. Здесь пользователи будут перенаправлены на нас для обработки после проверки подлинности на GitHub. Сохраните возвращаемую информацию как «GITHUB_CLIENT_ID» и «GITHUB_CLIENT_SECRET» в вашем .ENV-файле. В вашем ремикс-проекте создайте 2 маршрута, принимающих запросы GET: / auth / github и / auth / github / callback. Первый должен только называть паспорт для аутентификации «github», а второй должен вызывать паспорт для аутентификации «github» с перенаправлением отказа на «/», а затем, если это успешно перенаправляется на «/ profile» (аналогично нашему последнему проекту). Пример того, как выглядит '/ auth / github / callback', аналогичен тому, как мы обрабатывали обычный логин в нашем последнем проекте: app.route ( '/ Войти') .post (passport.authenticate ('local', {failRedirect: '/'}), (req, res) => { res.redirect ( '/ профиль'); });Представьте свою страницу, когда вы думаете, что у вас все в порядке. Если вы работаете в ошибки, вы можете проверить проект до этого момента здесь .
/**
* Your test output will go here.
*/