как я знаю, цель OAuth 2.0 - предотвратить утечку учетных данных пользователя в сторонние приложения.
abstract flow shows Как клиент (стороннее приложение) должен использовать access_token
(полученный с помощью одного из типов грантов) для доступа к ресурсу.
Спецификация также определяет основные вызовы HTTPS для использования, например, в случае authorization code grant type (я думаю, что этот поток наилучшим образом подходит для вас). У этого есть 2 запроса, один для code
(перенаправление пользовательского агента используется для отправки кода стороннему приложению) и один для access_token
. код запрос
Авторизация & ответа
GET /authorize?response_type=code&client_id=s6BhdRkqt3&state=xyz
&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb HTTP/1.1
Host: server.example.com
HTTP/1.1 302 Found
Location: https://client.example.com/cb?code=SplxlOBeZQQYbYS6WxSbIA
&state=xyz
Токен запрос & ответа:
POST /token HTTP/1.1
Host: server.example.com
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA
&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"example",
"expires_in":3600,
"refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",
"example_parameter":"example_value"
}
Так что вам не нужно спрашивать пользователь учетных данных GMail.
Here вы можете найти пример весенней безопасности для приложения, совместимого с OAuth 2.0.
Я надеюсь, что смогу помочь.
[stormpath]: https://stormpath.com/product/api-authentication/ –