Skip to content

TempAppCodesSpec

Fedor Romanenko edited this page Mar 8, 2017 · 2 revisions

#Временные коды для приложений (спек)

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

##Сценарий 1.

  • пользователь вводит свой секретный код в приложение, которому доверяет аутентификация (голосование или директория)
  • приложение через HTTP API запрашивает alumni-auth с просьбой выдать ему "код для приложения", передав исходный код, идентификатор приложения и срок действия.
  • API выдает замаскированную версию исходного, а также полную версию кода для приложения и срок действия. Если передали уже временный код и совпадающий идентификатор приложения, то возвращают его же без маскировки. В остальных случаях - ошибку.
  • приложение сохраняет временный код вместо оригинального. Он проходит все проверки и имеет тот же уровень траста, что и исходный, если ограничения на код выполняются

##Сценарий 2.

  • пользователь заходит в интерфейс alumni-auth.
  • там есть раздел "временные коды для приложений"
  • если код уже был выписан и действует, его видно без маскировки
  • если для приложения он не выписан или окончил срок действия, то есть кнопка для выписывания
  • пользователь копирует код в клипбоард и идет в приложение по ссылке

##Какие изменения в данных?

  1. Нужна таблица с идентификаторами приложений (строковой праймари ключ), их полными названиями, типовым сроком действия кода и/или максимальной датой при выписке через alumni-auth, урлом сервиса
  2. В стрелках нужен флажок is_temporary_for
  3. В коде задействуем поле экспирации, в каком-нибудь существующем флаге статуса состояние, указывающее, что это не нормальный код, в текстовом поле - идентификатор приложения для временных

##Раздел "Ваши временные коды для приложений" со списком полей и кодов:

  • код без маскировки
  • дата экспирации
  • название приложения
  • ссылка на названии на приложение
  • ссылка "отключить"

И кнопками "Директория - создать код" для приложений, для которых нет действующих кодов. Нажатие на кнопку может редиректить-возвращать на эту же страницу.

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

##API

API должно быть доступно для JSON вызовов. На входе вызова:

  • оригинальный код
  • идентификатор приложения
  • дата окончания действия (опциональное поле, используется для новых, если кода еще не было)

На выходе:

  • маскированный оригинальный код, если передали не временный
  • временный код для приложения (совпадает с исходным, если передали его)
  • идентификатор приложения
  • дата окончания действия

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

Clone this wiki locally