Вы можете предоставить 2 различных значения параметру response_type
.
В случае response_type=token
- после перенаправления к вашему URL-адресу перенаправления должен быть добавлен токен доступа, например:
<a href="http://myurl/?access_token=XXXYYY" rel="nofollow noreferrer">http://myurl/?access_token=XXXYYY</a>
Однако - это считается менее безопасным, чем идти в другую сторону, так как в этом случае вам будет открыт токен доступа.(Например, плагины браузера могут иметь доступ к URL-адресу, который они могут использовать в этом случае)
В случае response_type=code
- к вашему URL-адресу перенаправления должен быть добавлен код, например:
<a href="https://myurl/?code=XXXYYY" rel="nofollow noreferrer">https://myurl/?code=XXXYYY</a>
Затем вы получите этот код со стороны сервера и отправите его поставщику OAuth2 (в данном случае Yahoo) с вашими client_id и client_secret в обмен на access_token.Это более безопасно, поскольку только ваша сторона сервера теперь имеет доступ к access_token, а не к любому другому механизму.Обычно это был бы почтовый запрос к некоторой конечной точке Yahoo, например:
http.post(
url: 'someyahoourl', /* probably something like https://api.login.yahoo.com/oauth2/request_auth */
data:
{
client_secret: yourclientsecret,
client_id: yourclientid, /* Judging by the url it's dj0yJmk9WGx0QlE0UWdCa0hKJmQ9WVdrOWNrNUhXVnBhTkhFbWNHbzlNQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD01OA-- */
code: thecodefromurl,
grant_type: 'authorization_code',
redirect_uri: the redirect uri that you've retrieved the code from
}
И тогда ваш сервер получил бы access_token в ответ на этот запрос.