-
Notifications
You must be signed in to change notification settings - Fork 2
TempAppCodesSpec
#Временные коды для приложений (спек)
В данных появляется новый вид кодов "временные коды для приложений". Эти коды можно использовать каждый только в своем приложении, с их помощью нельзя обращаться к другим, приглашать выпускников и пр.
##Сценарий 1.
- пользователь вводит свой секретный код в приложение, которому доверяет аутентификация (голосование или директория)
- приложение через HTTP API запрашивает alumni-auth с просьбой выдать ему "код для приложения", передав исходный код, идентификатор приложения и срок действия.
- API выдает замаскированную версию исходного, а также полную версию кода для приложения и срок действия. Если передали уже временный код и совпадающий идентификатор приложения, то возвращают его же без маскировки. В остальных случаях - ошибку.
- приложение сохраняет временный код вместо оригинального. Он проходит все проверки и имеет тот же уровень траста, что и исходный, если ограничения на код выполняются
##Сценарий 2.
- пользователь заходит в интерфейс alumni-auth.
- там есть раздел "временные коды для приложений"
- если код уже был выписан и действует, его видно без маскировки
- если для приложения он не выписан или окончил срок действия, то есть кнопка для выписывания
- пользователь копирует код в клипбоард и идет в приложение по ссылке
##Какие изменения в данных?
- Нужна таблица с идентификаторами приложений (строковой праймари ключ), их полными названиями, типовым сроком действия кода и/или максимальной датой при выписке через alumni-auth, урлом сервиса
- В стрелках нужен флажок is_temporary_for
- В коде задействуем поле экспирации, в каком-нибудь существующем флаге статуса состояние, указывающее, что это не нормальный код, в текстовом поле - идентификатор приложения для временных
##Раздел "Ваши временные коды для приложений" со списком полей и кодов:
- код без маскировки
- дата экспирации
- название приложения
- ссылка на названии на приложение
- ссылка "отключить"
И кнопками "Директория - создать код" для приложений, для которых нет действующих кодов. Нажатие на кнопку может редиректить-возвращать на эту же страницу.
Под ними подпись курсивом: Временные коды подходят только для указанных приложений, с их помощью нельзя приглашать других выпускников. В некоторых ситуациях они генерируются автоматически в целях сохранения оригинального кода.
##API
API должно быть доступно для JSON вызовов. На входе вызова:
- оригинальный код
- идентификатор приложения
- дата окончания действия (опциональное поле, используется для новых, если кода еще не было)
На выходе:
- маскированный оригинальный код, если передали не временный
- временный код для приложения (совпадает с исходным, если передали его)
- идентификатор приложения
- дата окончания действия
Возможно, входные параметры стоит передавать через тело POST запроса, ибо там оригинальный код, для пущей секьюрности.