2013-05-15 43 views
11

我正在創建一個基於Rails和AngularJS的應用程序。我想用gem Devise來實現一個認證系統。 我想知道如何去做。我閱讀了一些關於屬性的文章:token_authenticatable:我將不得不在我發送的所有請求的末尾放置我的令牌。使用AngularJs和Devise Rails進行身份驗證,我需要令牌系統嗎?

我也讀過這個演示項目https://github.com/sectore/CafeTownsend-Angular-Rails 他們已經實現了一個可以創建和刪除服務器會話的SessionService。 (我想,我可以用Devise來完成這項工作)。在軌CONTROLER,他們得到會話[:USER_ID]或知道,如果用戶進行身份驗證不...

我的問題:我需要一個令牌系統或餅乾體系認證我的請求?

感謝

+0

這個關於AngularJS或Devise的問題?我使用AngularJS完成了基於token和cookie的認證,看起來Devise同時支持(通過令牌Authenticatable和Rememberable)。 – jkoreska

+0

我的問題是關於如何設計一個良好的身份驗證系統,當我使用rails作爲API的angularjs。如果兩種解決方案都得到支持,我不知道。也許基於cookie的cookie更容易實現 – vpoulain

+2

Cookies更容易,因爲瀏覽器會在每次請求時自動發送它們。如果您計劃支持非瀏覽器客戶端,則應該使用通過HTTP標頭傳遞的令牌 - 檢查$ http.defaults.headers.common以爲所有$ http請求注入令牌標頭。 – jkoreska

回答

6

如果您的服務器將在同一個域中的客戶端,即:將只指望從你的角度客戶端的請求,並在客戶端託管在相同的URL服務器,然後你應該使用Cookie通過SSL(爲簡單起見),EG:

您的位置:

www.myangularsite.com/somepage 

您的服務器

www.myangularsite.com/someserverfunction 

它們都具有相同的域。

然而,如果你計劃有一個不同的URL您的服務器端,也許作爲一個API,然後用令牌去,EG:

您的位置:

www.myangularsite.com/somepage 

您的服務器

api.myangularsite.com/someserverfunction 
or 
myrubyapi.com/someserverfunction 

的網址域名是不同的。

相關問題