2014-10-19 114 views
0

我正在嘗試考慮使用Angular和遠程服務器進行身份驗證的方法。通常我在本地服務器上做的事情,就像他們在MEAN.IO中做的一樣,檢查是否有用戶,如果是我把它放在全局窗口上,那就是我知道用戶被認證的方式。來自遠程服務器的AngularJS身份驗證

例如laravel:

@if(Auth::check()) 
     <script> 
      var user= [[[Auth::user()]]] 
     </script> 
     @endif 

,它生存的刷新,因爲IM在運行時檢查它。

但現在服務器是遠程的,我不得不做一些像獲取請求一些URL/getUser。但那不是很好,因爲所有的組件都將不得不等待響應返回,從而導致開發開銷不一致和 。

那我該怎麼辦?

+0

嘗試https://github.com/DaftMonk/generator-angular-fullstack - 我認爲它有你想要的開箱即用 – 2014-10-19 19:07:40

+0

是的,我在過去使用這個生成器,它沒有答案。 – Bazinga 2014-10-19 19:15:06

+0

當您通過GET/api/getUser獲取用戶後,您應該手動引導角度應用程序。我應該解釋更多答案嗎? – Max 2014-10-19 21:23:50

回答

0

您可以使用「解析」以避免更改當前的邏輯。

定義一個執行檢查的安全服務,讓我們說Security.getUser()並將其添加到您需要保護的每個路由的解析中。這樣,只有用戶已經檢查過,你的控制器纔會被加載。如果服務器將返回認證錯誤,請重定向到登錄屏幕。

您可以從安全的角度講我給goo.gl/kMvoFj 看看我的幻燈片或投奔我的github倉庫(這還是很原始,但其主要思想是有)ng-secure,我認爲它可以幫助你。

+0

但我需要發送每個我希望用戶登錄的狀態的請求? – Bazinga 2014-10-20 05:49:48

+0

不,不會,你不需要。只需存儲服務中返回的「用戶」,並在已經存在的情況下返回用戶並且不執行外部請求。 – 2014-10-20 08:02:39