authKey и accessToken

Всё что касается построения API
Закрыто
anmaslov
Сообщения: 15
Зарегистрирован: 2014.05.15, 12:06

authKey и accessToken

Сообщение anmaslov »

Проясните пожалуйста для чего необходим authKey?

Клиент авторизовался - в ответ получил сгенерированный accessToken, затем этот accessToken передает либо в заголовках либо в параметрах. В какой момент клиент получает/отправляет authKey, и для чего он нужен?

Как реализовать возможность двум клиентом работать с одной учетной записи? Для этого видимо и нужен authKey.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: authKey и accessToken

Сообщение ElisDN »

1. authKey просто добавляется в cookies вместе с id при обычной аутентификации. К accessToken отношения не имеет.

2. Либо дать им один и то же accessToken, либо сделать отдельную таблицу token + user_id + expired_at.
anmaslov
Сообщения: 15
Зарегистрирован: 2014.05.15, 12:06

Re: authKey и accessToken

Сообщение anmaslov »

Спасибо, Дмитрий.

1. Т.е. если я в клиентском приложении не использую куки - мне это и не нужно?

2. Опишите, если не трудно - логику формирования и работы с токеном.
У меня сейчас так: в момент регистрации пользователя, генерируется строка из случайных символов - accessToken.

Код: Выделить всё

Yii::$app->security->generateRandomString(64)
При авторизации пользователя, ему отдается этот accessToken. Один Пользователь может авторизоваться с нескольких устройств: телефон, планшет, еще телефон... Имеет ли смысл создавать еще одну таблицу для хранения пользователей и токенов (хотя это логично)?
Когда необходимо менять accessToken? В момент смены пароля?
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: authKey и accessToken

Сообщение SiZE »

anmaslov писал(а):1. Т.е. если я в клиентском приложении не использую куки - мне это и не нужно?

2. Опишите, если не трудно - логику формирования и работы с токеном.
1. authKey для авторизации не по кукам не нужно.

2. Если приложение подразумевает запоминание пользователя на устройстве, логично создать таблицу один ко многим и хранить несколько токенов для пользователя. Обновление токена зависит от бизнес логики, это может быть принудительное обновление из приложения раз в 5 минут или если токен протух, провалидировать старый и выдать новый.
Закрыто