Проверка подлинности на основе токенов в Hyperstack? - PullRequest
1 голос
/ 12 апреля 2019

Мое понимание аутентификации для 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 Ответ

0 голосов
/ 15 апреля 2019

Я не уверен на 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, чтобы добавить хук, чтобы сделать это проще:

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

...