Несанкционированный ответ после успешного создания и получения JWT с Knock - PullRequest
0 голосов
/ 07 января 2019

Я могу успешно сгенерировать токен, когда я нажму на свой контроллер user_token. Затем он отправляет его моему клиенту, который я могу проверить на вкладке Приложения консоли Chrome. Но когда я пытаюсь сделать аутентифицированный запрос, я получаю:

Filter chain halted as :authenticate_user rendered or redirected 

Я могу убедиться, что заголовок авторизации отправляется вместе с запросом (в качестве значения он имеет ключ Bearer и JWT), поэтому кажется, что Knock не нравится созданный мной токен. Создание токена не упоминается в документации Knock. Я использовал документацию по драгоценным камням JWT, чтобы узнать, как это сделать, но я думаю, что я что-то упустил. Был бы признателен, если бы кто-нибудь мог взглянуть. Вот как я его создаю:

# controllers/user_token_controller.rb

class UserTokenController < Knock::AuthTokenController
  def create
    user = User.find_by_email(user_token_params[:email])

    if user&.authenticate(user_token_params[:password])
      token = JWT.encode(user_token_params, ENV["SECRET_KEY_BASE"], "HS256")
      render json: {token: token}
    else
      render json: {error: "invalid email or password."}
    end
  end

  private

  def user_token_params
    params.require(:auth).permit(:email, :password)
  end
end
...