Глава 3. Авторизация пользователя

Ревизия VCS: 8198

Дата сборки документа: 2017.07.27 14:48:08

Содержание

Экран авторизации с вводом адреса и логина
Экран авторизации с вводом пароля
Авторизация с помощью сканирования QR-кода
Авторизация по приглашению

Входные данные, необходимые для авторизации пользователя:

Процесс авторизации разделен на 2 экрана: в первом вводятся адрес приложения (хост) и логин пользователя, во втором - только пароль пользователя.

Экран авторизации с вводом адреса и логина

При первом входе в приложение должен открываться экран с вводом адреса и логина (илл. «Авторизация, ввод адреса и логина»).

Рисунок 3.1. Авторизация, ввод адреса и логина

Авторизация, ввод адреса и логина

Элементы управления экрана.

Элемент управления Расположение на экране Описание

|

Верхняя половина, левая часть |

Иконка

Войти с помощью 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. Некорректно введен адрес приложения.

Действие не осуществляется, выходит ошибка:

Невозможно подключиться к серверу

Ошибки должны выводиться в фиксированной области внизу экрана. Текст ошибки должен быть обрамлен в рамку красного цвета. Кроме того, соответствующее ошибке поле должно подсветиться красным цветом (илл. «Авторизация, вывод ошибки»).

Рисунок 3.2. Авторизация, вывод ошибки

Авторизация, вывод ошибки

Альтернативные потоки событий, связанные с наличием шифрованного соединения.

Примечание:

В связи с особенностями iOS, альтернативные потоки 3-6 для данной ОС будут отсутствовать. Если настроено http соединение, то произойдет нешифрованное соединение (см. альтернативный поток №7). Если не настроено, то выйдет ошибка подключения к серверу, останется открытым данный экран авторизации.

  • Альтернативный поток №3. Если сертификат не является безопасным (в т.ч. является самоподписанным), то необходимо отобразить системное диалоговое окно с кнопками «Принять» и «Отменить» и сообщением:

    Сертификат безопасности не является доверенным

  • Альтернативный поток №4. Если сертификат просрочен, то необходимо отобразить системное диалоговое окно с кнопками «Принять» и «Отменить» и сообщением:

    Сертификат безопасности является просроченным

  • Альтернативный поток №5. Если сертификат выписан не на введенный адрес, то необходимо отобразить системное диалоговое окно с кнопками «Принять» и «Отменить» и сообщением:

    Сертификат безопасности данного адреса был выдан для другого адреса

  • Альтернативный поток №6. В случае, если выполняются одновременно несколько альтернативных потоков событий 3-5, то необходимо выполнять альтернативный поток №3.

Во всех этих случаях по нажатию на кнопку «Принять» необходимо продолжить авторизацию по нешифрованному соединению, по нажатию на кнопку «Отменить» - не выполнять действие и оставаться на данном экране.

Альтернативный поток событий №7. Если происходит авторизация по нешифрованному соединению, то необходимо отобразить системное диалоговое окно с кнопками «Принять» и «Отменить» и сообщением:

Ваше подключение не защищено. Продолжить?

По нажатию на кнопку «Принять» необходимо продолжить авторизацию по нешифрованному соединению, по нажатию на кнопку «Отменить» - не выполнять действие и оставаться на данном экране.