выражать

Первое, что я рекомендую, это создать папку с названием вашего проекта. Моя папка называется express-example.

Затем мы открываем терминал в этой папке и набираем npm init, чтобы настроить наш package.json. Если вы не знаете, как использовать npm init, я оставляю вам ссылку на документацию здесь.

Обычно npm init задает много вопросов, небольшая хитрость заключается в том, что npm init -y генерирует его прямо без вопросов.

Наконец у вас будет что-то вроде этого,

Затем мы собираемся установить express, используяnpm install express — сохранить.

После его выполнения мы можем увидеть package.json с помощью команды cat package.json, чтобы убедиться, что мы иметь зависимость.

Мы открываем этот проект в нашем любимом редакторе кода, я лично использую VSCode, а затем создаем на нем файл index.js.

Теперь давайте импортируем express и запустим его, например, на localhost:3000.

Я очень рекомендую установить nodemonсnpm install nodemon — сохраните, потому что я всегда забывал перезапускать свой экспресс-сервер, nodemon просто делайте это каждый раз, когда сохраняете.

Если мы запустим приложение с помощью nodemon index.js, вы увидите в консоли «Пример приложения, прослушивающего порт 3000!”.

Теперь пришло время настроить auth0 в github.

Настройка Auth0 в Github

Чтобы добавить новое приложение, авторизуйтесь на GitHub и перейдите в приложения OAuth в настройках разработчика. Далее нажмите Зарегистрировать новое приложение.

Оказавшись здесь, он просит нас ввести имя приложения, URL-адрес домашней страницы и один URL-адрес обратного вызова авторизации.

Я заполнил так:

Название нашего приложения, я поставил название нашего проекта «экспресс-пример».

В URL-адресе домашней страницы я указал маршрут нашей домашней страницы «http://localhost:3000».

А в URL-адресе обратного вызова авторизации я указал http://localhost:3000/user/signin/callback.

Таким образом, когда мы делаем запрос GET к этому обратному вызову (http://localhost:3000/user/signin/callback) и наше приложение успешно проходит аутентификацию, GitHub возвращает временный код, который будет использоваться для запроса POST, необходимого для получения access_token.

Здесь у вас есть ссылка на то, что объясняет это лучше.

Затем нажмите на регистрацию приложения. У нас получится вот такой экран.
Где наиболее важными будут идентификатор клиента и секрет клиента.

Теперь нам нужно создать запрос к нашему обратному вызову (http://localhost:3000/user/signin/callback), чтобы получить код.

Вернуться к нашему приложению

Теперь нам нужно дать пользователю авторизацию на Github, для этого нам нужно создать файл index.html в нашем приложении.

Затем нам нужна ссылка на Github с вашим идентификатором клиента https://github.com/login/oauth/authorize?&client_id=‹your_client_id›

Нам нужно отображать страницу index.html, когда мы переходим на нашу домашнюю страницу («localhost:3000»), поэтому нам нужно добавить в index.js это:

Если мы перейдем к («localhost:3000»), мы увидим что-то вроде этого

Если мы нажмем Authorize, мы увидим:

Нам просто нужно нажать Авторизовать ‹your_github_username› и Github перенаправит на наш обратный вызов (http://localhost:3000/user/signin/callback) с временным кодом на URL.

Но прежде чем мы продолжим, если мы посмотрим на настройки экспресс-примера нашего Github Auth Application, мы увидим:

Аутентификация работает.

POST-запрос для получения ACCESS_TOKEN

Теперь мы собираемся получить код из URL-адреса обратного вызова и использовать его для получения access_token. Добавьте это в наш файл index.js. Мы берем код из URL.

Если вы повторите процесс и перейдете к «localhost: 3000» и нажмете на авторизацию, теперь вы увидите что-то вроде этого:

Этот код является временным и меняется через определенное время, поэтому мы будем использовать его, чтобы сделать наш POST-запрос для получения access_token.

Я буду использовать axios для выполнения POST-запроса, вы можете установить его с помощью npm install axios — сохранитеи не забывайте импортироватьна index.js.

Теперь просто отправьте запрос с помощью axios с кодом, секретным клиентом и идентификатором клиента на «https://github.com/login/oauth/access_token».

И вы получите access_token, этот access_token можно использовать для любого вызова API Github, который требует авторизации, например, пометить репозиторий.

Я загружаю весь проект, если кто-то потерялся, в это репозиторий в моем Github.

Я часто делюсь советами по программированию в моем Instagram, вы можете поздороваться со мной в моем Twitterили посмотреть, как я программирую в моем Гитхаб.

Большое спасибо и продолжайте кодировать!!!

Йоэль