2013-03-16 68 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文档。在那里定义了一些方法来确保令牌有效,如果没有则重新生成。我不确定在浏览器中使用它是否明智,但是如果用户登录到浏览器,那么您肯定会为移动应用程序过期令牌,从而迫使他们在移动应用程序中重新进行身份验证。

相关问题