Проверка подлинности на основе токенов в Hyperstack?
Мое понимание аутентификации для HyperStack заключается в том, что он использует сеанс для сохранения идентификатора пользователя, который используется для получения 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]
передается от клиента по запросу.
1 ответ
Я не уверен на 100%, что никогда не использовал Token Authorization, но, глядя на эту хорошую статью, я считаю, что она должна "просто работать", за исключением того, что вы получите авторизацию в шапке. Вы реализуете все, что вам нужно, в ApplicationController, и у вас будет доступ к этому при входе в систему. 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, чтобы добавить хук, чтобы сделать это проще: