AngularJS + Laravel 5 Аутентификация

При создании моего SPA с angularJS я подошел к точке, где я хочу реализовать аутентификацию пользователя на моем сайте angularJS. Тем не менее, я понятия не имею, с чего начать и какие лучшие практики.

В принципе, я уверен, что может иметь одну или несколько ролей. Я искал примеры, поэтому я мог бы получить базовое представление о том, как правильно это обрабатывать, но до сих пор я сталкивался с примерами, которые очень просты или не настолько безопасны (например, это ).

Поэтому мой вопрос заключается в том, как реализовать службу аутентификации с использованием REST (или пользовательских URL-адресов API) для аутентификации пользователя, а затем отобразить информацию пользователя на странице с помощью angularJS, а также обеспечить наилучшее покрытие безопасности, используя (например) Символ csrf от Laravel?

Заранее спасибо, Nick van der Meij

Я делаю приложение AngularJS и API RESTful, сделанные с Laravel 5 для бэкэнд, и мой подход к аутентификации:

  1. Установлен jwt-auth . В основном расширяет Auth-модель Laravel, добавляя авторизацию с токенами.
  2. Добавлен простой пакет ролей для laravel. Я использовал permiso . Имеет несколько ролей / пользователей и разрешений / роли. Очень просто.
  3. Добавлен jStorage для интерфейса. (вместо этого вы можете использовать модуль AngularJS).

Итак, шаги:

  1. Frontend отправляет учетные данные пользователя (электронная почта и пароль).
  2. Проверка сервера, jwt-auth делает маркер этому пользователю и отправляет его обратно.
  3. Frontend сохраняет токен в хранилище браузера (без этого подхода не требуется csrf).
  4. Все последующие вызовы API выполняются с помощью Authorization: Bearer заголовок Authorization: Bearer (или с ?token=... )

Мне нравится тот же подход, который @neoroger использует с помощью JSON Web Tokens с jwt-auth. Я использовал пакет Satellizer для хранения токена на лицевой стороне и затем отправил его вместе с каждым запросом в API.

Я собрал пару учебных пособий, в которых показано, как реализовать эти два пакета, если вы заинтересованы:

https://scotch.io/tutorials/token-based-authentication-for-angularjs-and-laravel-apps

http://ryanchenkie.com/token-based-authentication-for-angularjs-and-laravel-apps/