Настройка поставщика OAuth2 довольно проста, если вы знаете, как работает протокол. Это 2-х или 3-х шаговый процесс (в зависимости от вашей настройки и от того, получаете ли вы токены от имени пользователя или только с сервера).
Что вам понадобится:
- Рабочий код для провайдера OAuth2
- Patience
Что вам нужно выяснить, как сделать с вашим кодом:
- Создание клиента (токены общего и частного доступа)
- Выясните, как называются конечные точки авторизации и токена (обычно
/authorize
и /token
)
- Выясните, как обрабатываются области действия
Первым шагом к получению токена является вызов /authorize?response_type=code&client_id=[YOUR ID]&redirect_uri=[YOUR REDIRECT URI]&scope=[YOUR SCOPE]
, где:
- clientid ([YOUR ID]) - ваш токен общего доступа
- redirect_uri ([YOUR REDIRECT URI]) - это ваш URI перенаправления. Вы будете перенаправлены на это после выполнения шага авторизации
- scope - это область вашего будущего токена
По завершении (обычно это кнопка отправки), ваш браузер будет перенаправлен на URI, указанный с помощью кода в URL (code = blah). Сохраните это значение.
Когда вы получите этот код, позвоните на другую конечную точку: /token?client_id=[YOUR ID]&client_secret=[YOUR SECRET]&grant_type=authorization_code&scope=[YOUR SCOPE]&code=[YOUR CODE]&redirect_uri=[YOUR REDIRECT URI]
Параметры:
- client_id - снова ваш открытый ключ клиента
- client_secret - ваш закрытый ключ ( это должен быть вызов на стороне сервера )
- scope - область действия токена - ДОЛЖЕН СООТВЕТСТВОВАТЬ ПЕРВОМУ ВЫЗОВУ
- redirect_uri - URI перенаправления - ДОЛЖЕН СООТВЕТСТВОВАТЬ ПЕРВОМУ ВЫЗОВУ
- код - код, который вы получили
Если все прошло нормально, на экране вы увидите объект JSON, содержащий информацию о токене.
Что происходит на заднем плане
Шаг 1 (авторизация)
Когда вы подтверждаете форму, сервер создает временный токен (токен аутентификации, как они называются), который обычно имеет очень короткий срок службы (мой код oauth2 sp обычно устанавливает это значение равным 60 секундам). Это время, когда ваш сервер должен перейти от получения кода к запуску шага 2. Это просто система подтверждения, и ее целью также является сохранение информации, предоставленной на шаге 1, для предотвращения взлома.
Шаг 2 (токен)
Здесь фактически создается ваш токен доступа. Множество проверок, много всего, но в итоге токен - это просто значение, которое связывает ваш client_id и ваш токен. Вот и все.
Бесстыдный плагин: если вы используете фреймворк Laravel, я построил именно это с нуля (вместо того, чтобы использовать дурацкий недокументированный пример кода): http://bundles.laravel.com/bundle/oauth2-sp