My Rails应用程序登录/注销功能正常工作,并在登录后返回有效的access_token。
我正在使用这个宝石
https://github.com/lynndylanhurley/devise_token_auth
但是如何在后续请求中使用此access_token?例如:
abc.com/action?access_token=123
我想在我的控制器和动作方法中,我应该能够从这个access_token中找到用户,但我不确定是否可以使用Devise。
如果我也传入:client或:uid以及:access_token,我可以通过执行以下操作来验证此令牌:
user = User.find_by_uid uid
user.valid_token? access_token, client
是否可以通过他/她的access_token单独查找用户?
感谢。
答案 0 :(得分:1)
根据文件:
access-token 这是每个请求的用户密码。该值的散列版本存储在数据库中以供稍后比较。 应在每次请求时更改此值。
它似乎是使用BCrypt的标记化,并且每次都会更改安全性。
此外,他们不允许您从令牌中单独执行数据库中的用户查找安全漏洞。您可以选择以创造性方式存储UID,也可以选择在会话中存储查找,并在application_controller.rb
中编写一个方法,然后对该数据执行某些逻辑。
这里提到:
uid 用于标识用户的唯一值。 这是必要的,因为通过访问令牌搜索用户数据库会使API易受timing attacks 的影响。