2017-09-13 26 views
0

我正在使用Laravel 5.3作爲後端,AngularJS作爲前端應用程序。對於身份驗證,用戶的信息需要與外部API匹配。要做到這一點,我已經使用Laravel內置的身份驗證,即一個定製版本一直,Laravel 5/AngularJS定製認證最佳實踐

  1. 用戶輸入信息
  2. AngularJS前端發送到Laravel後端
  3. Laravel使用驗證: :登錄覈對外部API
  4. 要麼告訴他們的憑證是錯誤的用戶或將它們移到主頁

我的問題是,從該點向前,是不好的做法,繼續使用Laravel的BUIL t-in auth中間件功能來查看用戶是否在應用程序中移動時進行身份驗證?

我正在閱讀的一切似乎都在討論使用基於標記的身份驗證(主要是JWT),雖然我的方法肯定有效,但我是AngularJS的新手,並希望確保我所做的遵循最佳實踐。

謝謝!

回答

0

就最佳實踐而言,有很多不同的方法可以解決這個問題。你可以使用laravel的內置身份驗證,但你必須確保會話ID不斷髮送與每個請求或Auth ::用戶將爲空。

當談到API的時候,你通常不想擁有會話數據,人們使用JWT或OAUTH等令牌的主要原因是因爲它們是無狀態的(大部分)。當你做這樣的事情,然後laravel的認證方法會正常運行

if (JWTAuth::getToken()) { 
     JWTAUth::parseToken()->authenticate(); 
    } 

:如果您使用的JWT令牌,那麼你可以像這樣的東西添加一個額外的middelware。這將與該軟件包附帶的jwt.auth中間件結合使用。希望清理一下東西:)

+0

感謝您的見解!我想我明白你在說什麼,儘管我在執行方面仍然有點模糊。你有沒有想過使用Laravel的護照套餐的想法? – abe678

+0

用這種方法實現只是爲了確保我描述的中間件在任何laravel標準認證中間件之前使用。 我從來沒有使用Laravel的Passport包,但從我在文檔中看到的它也是基於令牌的服務,如JWT。它可能更容易實現,因爲它來自laravel本身。我會遵循文檔[Laravel Passport](https://laravel.com/docs/5.4/passport),並且您應該使用身份驗證進入您想要的位置:) –