Как работает клиент отдыха Ruby для OAuth 2? - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь реализовать регистрацию OAuth 2 для Angular 6, используя gitLab Api.На его сайте есть код для получения access token на основе Ruby.Я буду очень рад, если кто-нибудь даст мне знать, как получить это access token.

OAtuth 2 для gitLab говорит, что я могу получить секрет code и YOUR_UNIQUE_STATE_HASH.Мне удалось выполнить их инструкцию.

Чтобы получить access token, gitLab опубликовал код Rubi [sic], который я не мог понять и не знаю, как реализовать в angular.

Вот инструкция:

Когда у вас есть код авторизации, вы можете запросить access_token, используя этот код, для этого вы можете использовать любой HTTP-клиент.В следующем примере мы используем rest-клиент Ruby:

parameters = 'client_id=APP_ID&client_secret=APP_SECRET&code=RETURNED_CODE&grant_type=authorization_code&redirect_uri=REDIRECT_URI'
RestClient.post 'http://gitlab.example.com/oauth/token', parameters

# The response will be
{
 "access_token": "de6780bc506a0446309bd9362820ba8aed28aa506c71eedbe1c5c4f9dd350e54",
 "token_type": "bearer",
 "expires_in": 7200,
 "refresh_token": "8257e65c97202ed1726cf9571600918f3bffb2544b26e00a61df9897668c33a1"
}

Я был бы очень любезен, если бы кто-нибудь объяснил этот фрагмент кода.

1 Ответ

0 голосов
/ 11 октября 2018

Фрагмент в основном делает то, что уже обозначено.Вам необходимо сгенерировать токен доступа (или токен на предъявителя), используя свой идентификатор клиента и секрет клиента с кодом, который был возвращен после успешной аутентификации пользователя - этот токен доступа в основном является токеном, который вы затем будете использовать в дальнейшемот имени пользователя для gitlab.
OAuth гарантирует, что код клиента не может быть использован неавторизованным злоумышленником, убедившись, что вы, как разработчик, запросите его с вашим идентификатором клиента и client_secret.

RestClient.post 'http://gitlab.example.com/oauth/token', parameters отправитэтот запрос POST и затем Gitlab вернет ответ с токеном доступа и об истечении срока его действия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...