simple_token_authentication - неопределенный метод `authenticate_user - PullRequest
0 голосов
/ 08 июня 2019

Я использую devise и simple_token_authentication для создания API, поддерживающего аутентификацию токена

Я выполнил все шаги в руководстве:

# app/models/user.rb

class User < ApplicationRecord

    acts_as_token_authenticatable

    # Include default devise modules. Others available are:
    # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
    devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable

end
# app/controllers/application_controller.rb
class ApplicationController < ActionController::API
    acts_as_token_authentication_handler_for User
end

Когда я пытаюсь найти маршрут "/ books", чтобы вывести список всех записей моей модели Book, я получаю следующую ошибку:

<NoMethodError:
    undefined method `authenticate_user!' for 
    # <BooksController:0x0000563e7bb26820>
    Did you mean?  authenticate_user_from_token!
>

Что я делаю не так?

UPDATE

Дополнительная информация:

$ rails routes
  Prefix Verb   URI Pattern                                            Controller#Action
   books GET    /books(.:format)                                       books#index
         POST   /books(.:format)                                       books#create
    book GET    /books/:id(.:format)                                   books#show
         PATCH  /books/:id(.:format)                                   books#update
         PUT    /books/:id(.:format)                                   books#update
         DELETE /books/:id(.:format)                                   books#destroy
sessions POST   /sessions(.:format)                                    sessions#create
         GET    /books/nearby/:latitude/:longitude/:distance(.:format) books#nearby

UPDATE2

Я обнародовал весь репо, если это поможет. Посмотрите на ветку simple_token_auth https://bitbucket.org/enmotent/bookaneer-api/src/master/

1 Ответ

0 голосов
/ 08 июня 2019

Попробуйте с

class ApplicationController < ActionController::API
    acts_as_token_authentication_handler_for User, fallback: :none
end

class BooksController < ApplicationController
 before_action :requires_login
end


 private
 def requires_login
   unless current_user
     render json: { errors: "This requires login" }
   end
 end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...