我对超级堆栈的身份验证的理解是,它依赖于持久化用户id的会话,该会话用于获取acting_user。
如果我想与rails会话解耦,并使用基于令牌的身份验证,我如何设置Hyperstack传输以在每个请求中包含一个令牌?
基本上,我问的是如何发送令牌,使其在acting_user调用中可用。
class ApplicationController < ActionController::Base
def acting_user
claim = JsonWebToken.verify(params[:token], key: some_key)
@current_user ||= claim[:ok] && User.find(claim[:ok][:user_id])
end
end其中params[:token]是根据请求从客户端传递的。
发布于 2019-04-16 01:01:00
我不是100%确定这是从来没有使用过令牌授权,但看看这篇好文章,我相信它应该“只是工作”,除非你将获得授权的标题。您将在ApplicationController中实现所需的任何内容,并且可以在登录ControllerOp中访问这些内容。只需确保您设置了acting_user
https://www.pluralsight.com/guides/token-based-authentication-with-ruby-on-rails-5-api
从客户机到服务器的所有通信都通过ServerOp类进行,因此您必须修补该类以添加授权。
仅供参考,github有一个问题,需要添加一个钩子来简化这一点:
https://stackoverflow.com/questions/55656784
复制相似问题