Содержание
Входные данные, необходимые для авторизации пользователя:
адрес приложения (обяз.)
логин (обяз.)
пароль (обяз.)
Процесс авторизации разделен на 2 экрана: в первом вводятся адрес приложения (хост) и логин пользователя, во втором - только пароль пользователя.
При первом входе в приложение должен открываться экран с вводом адреса и логина (илл. «Авторизация, ввод адреса и логина»).
Элементы управления экрана.
Элемент управления | Расположение на экране | Описание |
---|---|---|
| |
Верхняя половина, левая часть | |
Иконка |
Войти с помощью QR-кода |
Верхняя половина, правая часть |
Лейбл |
Сканировать код |
Под лейблом |
Кнопка запуска камеры для сканирования QR-кода (илл. «Сканирование QR-кода») |
Либо ввести данные вручную |
По центру экрана |
Лейбл |
Адрес |
Нижняя половина |
Содержит лейбл «Адрес», подпись в скобках «например: synergy.tm» и поле для ввода хоста (placeholder отсутствует) |
Логин |
Ниже адреса |
Содержит лейбл «Логин» и поле для ввода логина (placeholder отсутствует) |
Далее |
Ниже логина |
Кнопка для перехода на следующий экран авторизации (илл. «Авторизация, ввод пароля») |
Самый низ экрана |
Фиксированная область для вывода ошибок |
В поле «Адрес» вводится URL приложения (причем регистр букв не имеет значения). Если сервер работает не на дефолтном порту (80), то указывается «Хост:порт». Например, somehost или somehost:8080.
В поле «Логин» вводится логин пользователя.
При наличии введенных символов в указанных полях справа должна появляться иконка «крестика» , по нажатию которой поле должно очиститься, а курсор установиться в его начало (+ автоматическое открытие клавиатуры).
По нажатию на кнопку «Далее» (как вручную, так и автоматически после сканирования QR-кода) приложение должно попытаться привести введенный URL к рабочему по правилам, описанным ниже.
Если не введен протокол (http:// или https://), то добавлять его при отправке запросов. Сперва https (шифрованное соединение), возможно исполнение альтернативного потока событий №3. Если сервер не поддерживает шифрование, то затем необходимо добавить http, возможно исполнение альтернативного потока событий №4.
Если введен протокол http://, но сервером поддерживется шифрованное соединение, то заменить протокол на https://.
Если введен протокол https://, но сервером не поддерживется шифрованное соединение, то заменить протокол на http://.
Если адрес не заканчивается на «/», то добавлять его автоматически.
Если не удается подключиться по адресу, указанному в строке, попробовать подключиться к серверу по адресу «хост» + «/» (если необходимо) + Synergy.
Если не удается подключиться по адресу, указанному в строке и преобразованному согласно вышеописанным правилам, попробовать подключиться к серверу по адресу:
«хост» + «/» (если необходимо) + Synergy (если порт был введен);
«хост» + «:8443» + «/Synergy» (наоборот, если порт не был введен, для шифрованного соединения).
«хост» + «:8080» + «/Synergy» (если порт не был введен, для нешифрованного соединения).
Если не заполнены обязательные поля адреса и логина, исполняется альтернативный поток событий 1. Если в результате всех правил преобразования URL не удалось получить доступ к серверу - №2. Корректность логина проверяется на следующем шаге авторизации.
По нажатию на кнопку «Назад» на экране ввода адреса и логина происходит выход из приложения.
В результате успешного прохождения валидации обоих полей открывается следующий экран для ввода пароля.
Альтернативные потоки событий.
Альтернативный поток №1. Не заполнены обязательные поля адреса приложения и/или логина.
Действие не осуществляется, выходит ошибка:
Заполните все поля
Альтернативный поток №2. Некорректно введен адрес приложения.
Действие не осуществляется, выходит ошибка:
Невозможно подключиться к серверу
Ошибки должны выводиться в фиксированной области внизу экрана. Текст ошибки должен быть обрамлен в рамку красного цвета. Кроме того, соответствующее ошибке поле должно подсветиться красным цветом (илл. «Авторизация, вывод ошибки»).
Альтернативные потоки событий, связанные с наличием шифрованного соединения.
Примечание:
В связи с особенностями iOS, альтернативные потоки 3-6 для данной ОС будут отсутствовать. Если настроено http соединение, то произойдет нешифрованное соединение (см. альтернативный поток №7). Если не настроено, то выйдет ошибка подключения к серверу, останется открытым данный экран авторизации.
Альтернативный поток №3. Если сертификат не является безопасным (в т.ч. является самоподписанным), то необходимо отобразить системное диалоговое окно с кнопками «Принять» и «Отменить» и сообщением:
Сертификат безопасности не является доверенным
Альтернативный поток №4. Если сертификат просрочен, то необходимо отобразить системное диалоговое окно с кнопками «Принять» и «Отменить» и сообщением:
Сертификат безопасности является просроченным
Альтернативный поток №5. Если сертификат выписан не на введенный адрес, то необходимо отобразить системное диалоговое окно с кнопками «Принять» и «Отменить» и сообщением:
Сертификат безопасности данного адреса был выдан для другого адреса
Альтернативный поток №6. В случае, если выполняются одновременно несколько альтернативных потоков событий 3-5, то необходимо выполнять альтернативный поток №3.
Во всех этих случаях по нажатию на кнопку «Принять» необходимо продолжить авторизацию по нешифрованному соединению, по нажатию на кнопку «Отменить» - не выполнять действие и оставаться на данном экране.
Альтернативный поток событий №7. Если происходит авторизация по нешифрованному соединению, то необходимо отобразить системное диалоговое окно с кнопками «Принять» и «Отменить» и сообщением:
Ваше подключение не защищено. Продолжить?
По нажатию на кнопку «Принять» необходимо продолжить авторизацию по нешифрованному соединению, по нажатию на кнопку «Отменить» - не выполнять действие и оставаться на данном экране.