Как обращаться с токеном обновления OAuth?

Когда я авторизуюсь на своем сервере OAuth, он возвращает мне токены доступа/обновления:

access_token: "ZjJlMGM2MDcxNDg5MDQ1NzA4ZjkyNzRiOTIwM2E5MWI4N2M0MWU0ZD..."
expires_in: 3600
refresh_token: "NWZjMzQ3YjNjMmY5YTEzYzMxMDYzNGVhNzRiNjAxZTdmZTdjNzE3z..."
scope: null
token_type: "bearer"

Как мне использовать их в моем приложении javascript на стороне клиента?

  1. Можно ли сохранить токен доступа и токен обновления в файлах cookie? (безопасно ли это? - но все равно я не вижу другого места, где я мог бы их хранить...)
  2. Я могу запросить защищенные ресурсы следующим образом: /api/user?access_token=TOKEN . И когда я получаю к ним доступ, я действительно успешно защищаю свои защищенные данные. Но что произойдет, когда этот токен доступа истечет? Будет ли он обновляться автоматически, или мне нужно обрабатывать его вручную?
  3. Зачем мне нужен токен обновления и когда я должен отправить его на сервер?

person pleerock    schedule 03.02.2014    source источник
comment
Почему вы не используете SESSION вместо COOKIE?   -  person Victor Bocharsky    schedule 04.02.2014
comment
@ Виктор, я использую javascript SPA, поэтому доступны только файлы cookie. (?)   -  person pleerock    schedule 04.02.2014
comment
Но, как я знаю, SPA session также доступен, если вы используете AJAX-запросы к серверу.   -  person Victor Bocharsky    schedule 04.02.2014


Ответы (1)


трехногий (Пользователь---клиент-----Oauthserver)

1) При трехсторонней аутентификации токен доступа хранится на стороне клиента и никогда не передается пользователю.

двуногий (пользователь ----Oauthserver)

При двусторонней аутентификации токен хранится на стороне пользователя. Наверное в печенье.

2) Когда срок действия токена истекает, пользователь явно должен использовать токен обновления, чтобы получить новый токен аутентификации.

3) Каждый токен аутентификации имеет срок действия, и вместо повторной аутентификации с помощью имени пользователя/пароля пользователь может предъявить токен обновления, чтобы получить новый действительный токен аутентификации.

person 1234varun    schedule 04.02.2014