2016-12-21 1 views
0

В настоящее время я использую аутентификацию JWT для Rails API по этой ссылке: https://github.com/nsarno/knock и я внимательно следил за ее инструкциями. Тем не менее, я все еще не могу войти в систему с именем пользователя и паролем, который я только что зарегистрировал. Я могу зарегистрировать без ошибок, и показать мне это сообщение:Нет совпадений в маршруте [POST] "/ knock/user_token"

Started POST "/users" for ::1 at 2016-12-20 22:28:32 -0500 
Processing by UsersController#create as HTML 
    Parameters: {"user"=>{"email"=>"[email protected]", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}} 
    (0.4ms) BEGIN 
    SQL (0.8ms) INSERT INTO "users" ("email", "password_digest", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["email", "[email protected]"], ["password_digest", "$2a$10$1UAPAV92l.pHhbT.L3BvfOP7ieuy9yU2cdWdwy9VsVnTHjaRECB0W"], ["created_at", 2016-12-21 03:28:32 UTC], ["updated_at", 2016-12-21 03:28:32 UTC]] 
    (28.7ms) COMMIT 
[active_model_serializers] Rendered ActiveModel::Serializer::Null with Hash (1.42ms) 
Completed 200 OK in 162ms (Views: 21.2ms | ActiveRecord: 34.3ms) 

Однако, я получил эту ошибку, если я просто войти в систему с именем пользователя и пароль Я зарегистрировался:

Started POST "/knock/user_token" for ::1 at 2016-12-20 22:29:02 -0500 

ActionController::RoutingError (No route matches [POST] "/knock/user_token"): 

Вот маршруты .rb

Rails.application.routes.draw do 
    resources :cars 
    get '/users/current-user', to: "current_user#show" 
    resources :users 
    mount Knock::Engine => "/knock" 
    # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 
end 

Вот результат рейк-маршрутов | Grep постучать

  knock  /knock      Knock::Engine 
auth_token POST /auth_token(.:format) knock/auth_token#create 

Вот конфигурация routers.rb

Rails.application.routes.draw do 
    post 'user_token' => 'user_token#create' 
    resources :cars 
    get '/users/current-user', to: "current_user#show" 
    resources :users 
    mount Knock::Engine => "/knock" 
    # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 
end 

Как я могу решить эту проблему?

+0

Пожалуйста, напишите 'routes.rb'. – 31piy

+0

@ 31piy уже отправлен. Я только что последовал ее инструкциям –

+0

Пожалуйста, опубликуйте вывод 'rake routes ' grep knock' – unkmas

ответ

0

Хорошо, я прочитал документы для этого драгоценного камня.

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

rails generate knock:token_controller user

Вывод этой команды:

create app/controllers/user_token_controller.rb 
route post 'user_token' => 'user_token#create' 

Как вы можете видеть, маркер управления был создан, а также маршрут для Это.

+0

Я пробовал, и я могу сгенерировать token_controller. Но у меня такая же ошибка –

+0

@ D.Kenny Это странно. Добавьте свои новые маршруты.rb, пожалуйста. – unkmas

+0

добавлен уже. С новым годом –

Смежные вопросы