AngularJS + Laravel 5 Authentifizierung

9

Beim Aufbau meines SPA mit angularJS kam ich an den Punkt, an dem ich die Benutzerauthentifizierung in meiner angularJS-Website implementieren möchte. Ich habe jedoch keine Ahnung, wo ich anfangen soll und was die besten Praktiken sind.

Grundsätzlich habe ich eine sichere, die eine oder mehrere Rollen haben kann. Ich habe nach Beispielen gesucht, um ein grundlegendes Verständnis dafür zu bekommen, wie man damit richtig umgehen kann, aber bis jetzt bin ich nur auf Beispiele gestoßen, die sehr einfach oder nicht so sicher sind (wie dies ).

Meine Frage ist also, wie ich einen Authentifizierungsdienst implementieren kann, der REST (oder benutzerdefinierte API-URLs) verwendet, um einen Benutzer zu authentifizieren, und dann die Benutzerinformationen auf der Seite mit angularJS anzeigt und gleichzeitig die beste Sicherheitsabdeckung durch Verwendung von (z Beispiel) das csrf-Token von Laravel?

Vielen Dank im Voraus, Nick van der Meij

    
BattleOn 23.02.2015, 15:47
quelle

2 Antworten

19

Ich mache eine AngularJS-App und eine API RESTful mit Laravel 5 für das Backend, und mein Ansatz für die Authentifizierung war:

  1. Installierte jwt-auth . Grundsätzlich erweitert das Auth-Modell von Laravel Autorisierung mit Tokens.
  2. Einfaches Rollenpaket zu laravel hinzugefügt. Ich habe permiso verwendet. Hat mehrere Rollen / Benutzer und Berechtigungen / Rolle. Sehr einfach.
  3. jStorage wurde dem Frontend hinzugefügt. (Sie können stattdessen das AngularJS-Modul verwenden.)

Die Schritte sind also:

  1. Frontend senden Benutzeranmeldeinformationen (E-Mail und Pass).
  2. Server prüft, jwt-auth erstellt für diesen Benutzer ein Token und sendet es zurück.
  3. Frontend speichert das Token im Browserspeicher (kein csrf ist bei diesem Ansatz erforderlich).
  4. Alle folgenden Aufrufe der API werden mit Authorization: Bearer header (oder mit ?token=... )
  5. durchgeführt
neoroger 24.02.2015, 01:00
quelle
8

Ich mag den gleichen Ansatz, den @neoroger mit JSON Web Tokens mit jwt-auth macht. Ich habe das Satellizer-Paket verwendet, um das Token am Frontend zu speichern und es dann mit jeder Anfrage an die API zu senden.

Ich habe ein paar Tutorials zusammengestellt, die zeigen, wie man die zwei Pakete implementiert, wenn Sie interessiert sind:

Ссылка

Ссылка

    
cienki 30.06.2015 22:54
quelle