自定义设计api令牌身份validation

使用令牌身份validation查找注册用户的最佳方法是什么? 我目前的方式是查询数据库以获取应用程序发送以访问api的令牌。 例如’user = User.where(:authentication_token => params [:authtoken])。first’。 这样安全吗?

我见过使用warden.authenticate的代码和执行ff的另一个代码:客户端发送电子邮件和authtoken。 然后,它使用电子邮件查找用户,然后与发送的令牌以及在db电子邮件查询中找到的用户的令牌进行设计安全比较。 这是设计令牌可validation要点中的解决方案,用于滚动您自己的令牌身份validation。

我是否应该在每个请求中发送电子邮件和令牌?

由于安全问题,Devise删除了token_authenticateable,但正如您所建议的那样,您仍然可以自己实现它。 这个要点有一些很好的讨论和建议: https : //gist.github.com/josevalim/fb706b1e933ef01e4fb6

具体来说,我将看看在第二个解决方案中使用的Devise.secure_compare ,并考虑到您对方法安全性的一些担忧,特别是在时序攻击方面。