Перейти к содержанию

Auto-login

Автологин позволяет войти без повторного ввода пароля по короткоживущему токену. Выдавайте ссылку только пользователю, которого уже проверила ваша внешняя система. Получатель ссылки получает доступ к учетной записи, для которой выпущен токен.

Получите токен

Обычная пользовательская сессия или персональный ключ могут выпустить токен только для самого пользователя. Административная роль этого ограничения не снимает. Чтобы внешняя учётная система могла выдавать автологин пользователям, администратор создает API-токен с областью autologin/generate и использует его в Bearer-заголовке запроса.

Запрос v3:

POST /watcher/client-api/v3/autologin/generate
Authorization: Bearer <token>
Content-Type: application/json

{"login":"resident-example"}

Ответ содержит autologin_token. В запросе поддерживается login; срок действия и длительность сессии задает сервер: токен пригоден для входа в течение пяти минут, создаваемая сессия — на восемь часов.

Не подставляйте персональный ключ пользователя в URL: для ссылки нужен именно autologin_token из ответа.

Откройте веб-интерфейс

Сформируйте ссылку, закодировав токен как значение параметра URL:

https://watcher.example.com/watcher/client/#/auth/signin/auto?autologin_token=<encoded_token>

Веб-интерфейс извлекает токен из параметра после #, обменивает его через API и сохраняет полученную сессию. Старую HTML-форму с отправкой на отдельный путь автологина для этого сценария использовать не нужно.

Обменяйте токен в собственном приложении

Вместо перехода в веб-интерфейс приложение может выполнить запрос:

POST /watcher/client-api/v3/autologin
Content-Type: application/json

{"autologin_token":"<autologin_token>"}

Ответ содержит access_token и refresh_token, как при обычном входе в API. Дальнейшие запросы выполняются с Authorization: Bearer <access_token>.

Неверный или просроченный токен отклоняется с ошибкой валидации. В этом случае запросите новый токен через доверенную систему. Не сохраняйте ссылки автологина в общедоступных журналах и не используйте один токен как постоянную ссылку для пользователя.