2015-02-23 189 views
8

在用angularJS構建我的SPA時,我來到了我想在我的angularJS網站中實現用戶身份驗證的地步。但是,我不知道從哪裏開始以及最佳做法是什麼。AngularJS + Laravel 5身份驗證

基本上我有一個肯定可以有一個或多個角色。我查找了一些例子,所以我可以對如何正確處理這個問題有一個基本的瞭解,但到目前爲止,我只是遇到了非常簡單或不太安全的例子(如this)。

所以我的問題是,如何我使用REST(或自定義的API網址)來驗證用戶,然後顯示使用angularJS頁面上的用戶信息,同時還通過確保最佳的安全性覆蓋率(實現身份驗證服務例如)來自Laravel的csrf標記?

由於提前, 尼克·範德Meij

回答

18

我正在做一個AngularJS應用,並使用Laravel 5製成的後端的API基於REST,而我的驗證方法是:

  1. 安裝了jwt-auth。基本上擴展了Laravel的Auth模型,並添加了令牌授權。
  2. 添加簡單的角色包到laravel。我用permiso。具有多個角色/用戶和權限/角色。很簡單。
  3. 將jStorage添加到前端。 (你可以使用AngularJS模塊)。

因此,步驟是:

  1. 前端發送用戶憑據(電子郵件和傳遞)。
  2. 服務器檢查,jwt-auth爲該用戶創建一個令牌並將其發回。
  3. 前端將標記保存在瀏覽器存儲中(此方法不需要csrf)。
  4. API的所有來電旁邊用Authorization: Bearer頭(或?token=...
+0

我要實現相同的格式,但我已經執行了用戶角色和Entrust軟件包的權限。 @neoroger是否可以通過Entrust實現jwt-auth並且所有的用戶和角色權限都在運行?任何幫助深表感謝? thnx提前。 – Tarunn 2015-06-01 14:11:14

8

我喜歡@neoroger需要使用JSON網絡令牌智威湯遜-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/

+0

我剛讀完你的2篇文章,它教會了我很多。喜歡關於如何使用JWT在Laravel和使用Satellizer for Angular的方法和解釋。謝謝。 – Neel 2015-07-03 18:37:17

+1

太棒了!樂意效勞。 – cienki 2015-07-04 19:40:08

+1

:)我的確有一個關於如何使用'jwt.auth'中間件來限制所有控制器訪問的問題。我已經在那篇文章的評論中加入了這一點。今天我正在玩這個教程演示,並且通過它瞭解了很多關於laravel和jwt認證的內容。目前爲止我已閱讀的最佳教程 - 毫無疑問! – Neel 2015-07-04 19:46:01