Документация на Flussonic Watcher

Auto-login

У Flussonic Watcher есть возможность входа пользователя по специальной ссылке без ввода пароля. Это может быть необходимо, если вы хотите упростить вход в Flussonic Watcher для своих пользователей или предотвратить передачу паролей третьим лицам. Предполагается, что ссылка для автологина выдается уже авторизованному клиенту.

Для того чтобы сгенерировать URL адрес для автологина, нужно предварительно запросить у Flussonic Watcher токен по ссылке /vsaas/api/generate-autologin-token. Затем пользователя можно авторизировать через POST на /vsaas/autologin.

Шаги:

1) Предварительно сгенерируем админский токен. Для этого нам понадобится API KEY со страницы настроек административного интерфейса Flussonic Watcher.

sign = md5(salt + ":" + utc + ":" + api_key)
admin_token = salt + ":" + utc + ":" + sign

где:

  • salt — любая случайная строка;
  • utc — текущее UTC время в секундах;
  • api_key — ключ API со страницы настроек админки Flussonic Watcher.

Сгенерированный токен имеет конечное время жизни и привязывается к указанному времени UTC.

Например, если

  • salt = "20a666"
  • utc = "1487258700"
  • api_key = "HELLO"

тогда итоговый admin_token будет: "20a666:1487258700:4b60f36de708e5b3472155db2fea990a"

2) Итак, админский токен готов, теперь нужно получить токен для автологина конкретного пользователя. Для этого нужно сделать POST запрос в JSON-формате:

curl --header "X-Vsaas-Api-Key: ADMIN_TOKEN" --header "Content-Type: application/json" --request POST --data '{"login": LOGIN, "valid_till": VALID_TILL, "lifetime": LIFETIME}' "http://watcher.com/vsaas/api/generate-autologin-token" 
  • ADMIN_TOKEN — токен, сгенерированный в шаге 1. Этот токен передается в HTTP-заголовке X-Vsaas-Api-Key.
  • LOGIN — login (он же email) пользователя, которому нужно дать доступ. Строка. Обязательный параметр.
  • VALID_TILL — время UTC в секундах, до которого этот токен будет действителен для автологина. Целое число. Необязательный параметр.
  • LIFETIME — длительность сессии, открываемой через автологин в секундах. Целое число. Необязательный параметр.

Ответ будет в JSON формате:

{
    "autologin_token": "demo:1487258314:f8b1:b4bdaac58cbe94638e5b14a3728b8e6d633f3c6e", 
    "success": true
}

Нам нужен этот autologin_token.

3) Токен autologin_token, полученный на шаге 2, используется для POST-запроса в Flussonic Watcher. Например, таким образом:

<form action="http://watcher.com/vsaas/autologin" method="POST">
  <input type="hidden" name="autologin_token" value="AUTOLOGIN_TOKEN" />
  <input type="submit" />
</form>

При нажатии на кнопку подтверждения пользователь автоматически попадает в интерфейс Flussonic Watcher и оказывается залогинен.