Спецификации токена доступа Oauth2 и область обработки

У меня есть два вопроса, которые я не могу понять полностью, надеюсь, кто-то может объяснить это ясно:

1: Вы запрашиваете токен доступа с действительным кодом и областью "access_userdata". Токен доступа сохраняется в базе данных с истечением 10 дней. Можно ли добавить новую область видимости к токену доступа? Это распространено? Или вы перечисляете все области непосредственно в приложении, к которому пользователь должен дать свое одобрение? Если возможно, вы просто ищете токен доступа и добавляете в него новую область?

2: допустим, вы создали приложение, которое используете на своем компьютере и планшете. Сначала вы получаете токен доступа на вашем компьютере, срок действия которого истекает 10 дней. На следующий день вы делаете то же самое на своем планшете. Будет ли создан новый токен доступа? Или сервер вернет тот же токен, потому что вы тот же пользователь, что и на компьютере, и токен еще не истек? Я полагаю, вы можете иметь несколько токенов доступа для одного и того же пользователя?

1 ответ

Решение

Это хороший вопрос =)

Прежде всего, я предполагаю, что когда вы говорите, что у вас есть токен, у вас действительно есть JSON Web Token (JWT) - это правильно? Я собираюсь предположить, что так.

  1. JWT не могут быть изменены после подписания. Поэтому нет, вы не можете "модифицировать" существующий токен и просто "добавить" области действия в него. Однако вы можете создать новый объект JWT и сохранить его в своей базе данных с новыми включенными областями. Если ваш токен был предоставлен вам сторонним поставщиком, таким как Google или Facebook, вы не можете изменить эти токены самостоятельно. Только тот, кто выпустил токен, может его изменить.

  2. Это зависит от эмитента токена. Как правило, с потоком OAuth ответ - да: каждое устройство, с которого вы входите, получит новый токен с собственной датой / временем истечения. Очень распространено иметь МНОЖЕСТВО токенов для одного пользователя.

Другие вопросы по тегам