2016-07-10 4 views
1

Я не очень разбираюсь в механизмах аутентификации, поэтому мне трудно понять, как создать механизм аутентификации с интерфейсом Front-End и Play Framework (Java). Основная идея заключается в следующем:Аутентификация SPA с помощью Angular + Play Framework (Java)

  1. Угловой интерфейс отправляет запрос аутентификации REST на механизм проверки подлинности платформы Play Framework.
  2. Play генерирует некоторый маркер (отправляет его на угловой)
  3. Угловые может сделать другие вызовы REST на основе этого маркера

В идеале я хотел бы хотел использовать CSRF токен. Я нашел очень мало источников об интеграции аутентификации Angular и Play, и ни одна из них не была достаточно полной, чтобы реализовать ее в моем приложении. Конечно, есть много источников об интеграции аутентификации Javascript и Play, но это совсем другой случай.

Итак, мой вопрос заключается в том, как разработать, какие рамки/функции использовать, чтобы заставить его работать, и как интегрировать Angular и Play в этой области. Общих шагов для достижения этого было бы достаточно, т. Е. Использовать эту структуру аутентификации в Play, реализовать эту функциональность в Play, использовать эти методы в Angular, подключить все таким образом и т. Д. Конечно же, более конкретные инструкции также приветствуются. Последнее, что я хочу хранить хэши паролей в базе данных, также помогут любые советы о том, как их использовать (любые механизмы воспроизведения или другие фреймворки).

ответ

0

Вы можете использовать что-то вроде JWT, чтобы создать токен и отдать его своему угловому приложению. В основном поток будет примерно таким:

  • Пользователь предоставляет аутентификацию (например, адрес электронной почты и пароль);
  • Вы отправляете эту информацию для воспроизведения, чтобы она могла проверять учетные данные и генерировать токен, если все в порядке. У этого токена может быть много информации, например, данные о гостях/ролях, которые есть у пользователя, дату создания и т. Д .;
  • После того, как вы получили свой токен, вы можете использовать его в своем угловом приложении. На стороне Play вам нужно будет проверить, действительно ли предоставленный токен (он был создан из вашего приложения, и он не истек)

Обратите внимание, что вы можете захотеть сохранить эти токены (например: в базе данных), если вы хотите реализовать что-то вроде маркера в черном списке или автоматическое обновление токенов ...

Другие варианты - создать себе какой-то токен (например: случайную строку base64) и сохранить его в базе данных с ассоциированными вам может понадобиться (дата истечения срока действия и т. д.) или даже просто установить cookie в Play и позволить вашему приложению использовать его (вы, вероятно, не можете напрямую использовать cookie Play по умолчанию в Angular, потому что это только HTTP).

Что касается хэширования паролей, вы можете использовать любую библиотеку scala/java, но вы должны выбрать что-то безопасное. Обычно я использую BCrypt, но есть много других опций (scrypt, pbkdf2 и т. Д.)

Смежные вопросы