2013-03-16 98 views
1

我有一個從瀏覽器和移動設備訪問的rails應用程序。我正在使用Devise進行身份驗證,並且我正在爲移動設備使用令牌身份驗證。Rails爲瀏覽器和移動應用程序設計授權

我從移動應用程序登錄時獲得身份驗證令牌,並且每次通過移動設備撥打電話時都會使用它。

在瀏覽器中,我使用基於會話的cookie。因此,恰好兩個人可以同時使用來自瀏覽器和移動應用程序的相同用戶名/密碼登錄,這會導致數據損壞。

如何解決此問題?如果我可以在瀏覽器的每個調用中發送相同的auth_token,那麼這個問題將被修復,因爲上次登錄的auth_token將優先於另一個。

任何線索,我可以如何從瀏覽器發送所有調用(get/post/put/delete)的身份驗證令牌?

我沒有使用jQuery或瀏覽器的任何Ajax調用。

謝謝

+0

我想你是指「一個人可以從瀏覽器和移動應用程序登錄」,否則你有安全問題。 – 2013-03-16 09:35:47

+0

是的。同一個人可以從瀏覽器和移動應用程序登錄,然後從兩者中任意一方繼續編輯而不從另一方登出。 – mentalic 2013-03-16 11:44:23

+0

這與從兩個不同的瀏覽器同時登錄有什麼不同? – rossta 2013-03-16 12:57:01

回答

0

您將不得不配置設計爲每個請求使用無狀態令牌。

config.skip_session_storage = [:token_auth] 

如果您還沒有準備好,看看在token authenticable文檔。在那裏定義了一些方法來確保令牌有效,如果沒有則重新生成。我不確定在瀏覽器中使用它是否明智,但是如果用戶登錄到瀏覽器,那麼您肯定會爲移動應用程序過期令牌,從而迫使他們在移動應用程序中重新進行身份驗證。

相關問題