1

我对 hyperstack 身份验证的理解是,它依靠会话来保存用户的 id,该 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]根据请求从客户端传递的位置。

4

1 回答 1

0

我不是 100% 确定这从未使用过令牌授权,但看看这篇好文章,我相信它应该“正常工作”,除了你将授权进入标题。您将在 ApplicationController 中实现您需要的任何东西,并且您可以在 login 中访问它ControllerOp。只要确保你设置acting_user

https://www.pluralsight.com/guides/token-based-authentication-with-ruby-on-rails-5-api

从客户端到服务器的所有通信都通过 ServerOp 类,因此您必须修补该类以添加授权。

它非常简单:https ://github.com/hyperstack-org/hyperstack/blob/edge/ruby/hyper-operation/lib/hyper-operation/server_op.rb

仅供参考,有一个 github 问题可以添加一个钩子以使其更容易:

https://github.com/hyperstack-org/hyperstack/issues/168

于 2019-04-15T17:01:00.013 回答