Ruby on rails Rails为浏览器和移动应用程序设计身份验证

Ruby on rails Rails为浏览器和移动应用程序设计身份验证,ruby-on-rails,authentication,devise,Ruby On Rails,Authentication,Devise,我有一个rails应用程序,可以从浏览器和移动设备访问。我正在使用Desive进行身份验证,我正在为移动设备使用令牌身份验证 我在从移动应用程序登录时获得身份验证令牌,并在我从移动设备拨打的每一个电话中使用它 在浏览器上,我使用基于会话的cookie。因此,两个人可以同时从浏览器和移动应用程序使用相同的用户名/密码登录,这导致了数据损坏 如何解决此问题?如果我也可以在每次从浏览器调用时发送相同的auth_令牌,那么这个问题将得到解决,因为上次登录的auth_令牌将优先于其他令牌 关于如何从浏览器

我有一个rails应用程序,可以从浏览器和移动设备访问。我正在使用Desive进行身份验证,我正在为移动设备使用令牌身份验证

我在从移动应用程序登录时获得身份验证令牌,并在我从移动设备拨打的每一个电话中使用它

在浏览器上,我使用基于会话的cookie。因此,两个人可以同时从浏览器和移动应用程序使用相同的用户名/密码登录,这导致了数据损坏

如何解决此问题?如果我也可以在每次从浏览器调用时发送相同的auth_令牌,那么这个问题将得到解决,因为上次登录的auth_令牌将优先于其他令牌

关于如何从浏览器为所有调用(get/post/put/delete)发送此身份验证令牌的任何线索

我没有使用jQuery或任何来自浏览器的Ajax调用


谢谢

您必须将Desive配置为对每个请求使用无状态令牌

config.skip_session_storage = [:token_auth]

如果您还没有,请查看文档。这里定义了一些方法来确保令牌有效,如果无效则重新生成。我不确定在浏览器中使用它是否明智,但如果用户登录到浏览器,则移动应用的令牌肯定会过期,这将迫使他们在移动应用上重新进行身份验证。

我想你的意思是“一个人可以从浏览器和移动应用中登录”,否则你会遇到安全问题。是的。同一个人可以同时从浏览器和移动应用程序登录,并在不从另一个浏览器注销的情况下从其中一个浏览器继续编辑。这与能够同时从两个单独的浏览器登录有什么不同?@rossta这没有太大的不同…但让我备份一下…登录不是针对每个人的,但有点像每个帐户登录。用户可以从浏览器或移动设备登录。理想情况下,如果我只对这两种介质使用令牌身份验证,那么无论谁最后登录,他的令牌都将是最新的,而另一个人将无法使用他的过期令牌进行任何交易。