2016-10-12 5 views
1

Мне нужны предложения от людей, которые, возможно, имели опыт работы с подобными типами приложений. Я строю и приложение, которое должно использоваться для тестирования в режиме онлайн. Например, если вы хотите работать в какой-либо компании, HR может создать тестовый сеанс для вас и отправить вам ссылку на приложение. Это письмо будет содержать ссылку. На ссылку нажмите Я хочу поразить мое приложение angularjs. AngularJs получит идентификатор сеанса из ссылки, в которой он должен сделать запрос на сервер. Затем серверу необходимо проверить db и попытаться найти тестовый сеанс с этим идентификатором и вернуть некоторый ответ. (данные сеанса, если это нормально или какое-либо сообщение о том, что сеанс истек и т. д.)Приложение для доступа AngularJs по электронной почте

Проблема заключается в использовании токенов JWT. Например, когда HR использует часть приложения, он должен быть аутентифицирован, что делается с помощью токенов jwt.

Какова наилучшая практика, когда у вас есть пользователи с другой стороны? Как люди, которые пройдут тест. Они не имеют токена jwt, но сервер ожидает что-то для аутентификации.

Должен ли пользователь получить какой-либо пользовательский токен, срок действия которого истек, когда истечет срок тестирования, тогда, возможно, я смогу декодировать этот токен на угловой стороне и проверить роль пользователя или что-то в этом роде.

У кого-нибудь был опыт работы с приложением, которое может иметь доступ по ссылке?

+0

И? Помог ли нам наш ответ? – Weedoze

+0

@Weedoze Да, и большое спасибо. Я понимаю, и я попытаюсь реализовать его таким образом и посмотрю, будет ли это работать. Для меня самая большая проблема заключается в том, что я думаю, что у нас должно быть 2 отдельных приложения. Один для пользователей, которые пройдут тест, и один для пользователей, которые будут создавать для них тестовые сеансы. Но вы знаете ... заказ - это заказ :) –

+0

Почему у вас должно быть 2 приложения? У вас может быть только одно приложение с двумя разными ссылками. Один для создателя и один для тестеров – Weedoze

ответ

1

Вот возможный сценарий

  1. HR подключения к приложению и сгенерировать новую тестовую сессию

  2. Создать новую тестовую сессию в базе данных всей необходимой информации + добавить 2 колонки: Token + Token_Expiration. Token будет случайной строкой, а Token_Expiration теперь + x часов

  3. Отправить ссылку с токеном пользователю по электронной почте. например: http://myapp.com/?token=ahdk5d5ek4945gol

  4. пользователя нажмите на ссылку, которая перенаправляет его на целевую страницу.

  5. Получить маркер из URL и отправить его на сервер
  6. сервер должен проверить, если этот маркер существует в базе данных
    • Если маркер не существует - Запрещенный доступ
    • Если маркер существует - Проверьте, если текущее время не превышает Token_Expiration
  7. Пользователь закончить тест

  8. сервер должен удалить Token или использовать третий столбец Valid и установить его на false

1

Отправить пользовательский токен со ссылкой и на основе этого пользователя аутентификации , затем найдите идентификатор сеанса для этого пользовательского токена и ответ возврата и недействительный пользовательский токен после завершения теста.