使用令牌身份验证查找注册用户的最佳方法是什么?我目前这样做的方法是在数据库中查询应用程序发送以访问api的令牌。例如。 'user = User.where(:authentication_token => params [:authtoken])。first'。这样安全吗?
我见过使用warden.authenticate的代码和执行ff的另一个代码:客户端发送电子邮件和authtoken。然后,它使用电子邮件查找用户,然后与发送的令牌以及在db电子邮件查询中找到的用户的令牌进行设计安全比较。这是设计令牌可验证要点中的解决方案,用于滚动您自己的令牌身份验证。
我是否应该在每个请求中发送电子邮件和令牌?
答案 0 :(得分:2)
由于安全问题,设计已删除了token_authenticateable,但正如您所建议的那样,您仍然可以自行实施。这个要点有一些很好的讨论和建议:https://gist.github.com/josevalim/fb706b1e933ef01e4fb6
具体来说,我会看看第二个解决方案中使用的Devise.secure_compare,并考虑到您对方法安全性的一些担忧,特别是在时间攻击方面。