Авторизация токена JWT с помощью Rails - PullRequest
0 голосов
/ 11 мая 2019

Я пытаюсь настроить авторизацию токена JWT для моего приложения rails с входом для входа в систему.Это мой первый раз в этом, но я следил в Интернете, и что-то идет не так с моей стороны.Мне бы понравился другой набор глаз, который может, возможно, увидеть, что я делаю неправильно.

Установка Rails

Я установил в комплекте следующие гемы, чтобы заставить JWT работать:

gem 'bcrypt', '~> 3.1.7'

gem 'rack-cors'

gem 'knock'

Я добавил эту строку кода к config/initializers/knock.rb согласно https://www.techandstartup.com/tutorials/rails-react-jwt.

Контроллер моего приложения выглядит следующим образом:

class ApplicationController < ActionController::Base
   skip_before_action :verify_authenticity_token
   include Knock::Authenticable
end

Файл моего rout.rb выглядит следующим образом:

Rails.application.routes.draw do
  get '/quizes' => 'quizzes#quiz'

   scope '/quizes' do
    resources :quizes
    post 'user_token' => 'user_token#create'
  end

end

Мой users.rb (файл модели) выглядит так:


class User < ApplicationRecord
  has_secure_password

  validates :email, :presence => true, :uniqueness => true

end

Это все в соответствии со всем, что было предложено, чтобы начать работу, тогда на переднем крае у меня есть вызов функции, когда есть щелчок для входа, и я просто пытаюсь вернуть токен JWT, чтобы увидеть, еслиэто на самом деле присутствует в это время.

React Set up

Моя функция реагирования на этот вызов:

  const login = () => {
    const email = 'ben@ga.co'
    const password = 'test'
    const request = { "auth": { "email": email, "password": password } }
    console.log(request)
    axios.post("http://localhost:3000/quizes/user_token", request).then((result)  => console.log(result.jwt))
  }

В настоящее время я получаю ошибку POST http://localhost:3000/quizes/user_token 422 (Unprocessable Entity) в консоли (я запускаю обасерверы на локальном хосте)

во вкладке сети Chrome он показывает, что это ошибка, исходящая от рельсов со следующими деталями:

        def handle_unverified_request
          raise ActionController::InvalidAuthenticityToken
        end
      end
    end

Хотя большинство проведенных мной исследований говорят, что это письмоотносится к отсутствию этой строки skip_before_action :verify_authenticity_token в контроллере приложения, но у меня есть это в.

Также обратите внимание, что в деталях нет ошибки, это было проверено.

Вкладка «Сеть» также показывает, что информация успешно принимается сервером, как показано ниже:

{"auth"=>{"email"=>"ben@ga.co", "password"=>"[FILTERED]"}, "user_token"=>{"user"=>{"email"=>"ben@ga.co", "password"=>"[FILTERED]"}}}

Любая помощь или руководство будут высоко оценены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...