Я использую Виноградный камень для создания API для моего приложения.Все работает хорошо, пока я не добавил базовую аутентификацию http в свой API, встроенный в API Grape.
Вот код, который у меня есть:
require 'grape'
module MyApp
class API < Grape::API
prefix 'api'
version 'v1'
helpers do
def current_user
@current_user ||= User.authenticate(env)
end
def authenticate!
error!('401 Unauthorized', 401) unless current_user
end
end
resources :projects do
http_basic do |u,p|
authenticate! #=> Results in undefined method `authenticate!' for MyApp::API:Class (NoMethodError)
error! "401 Unauthorized", 401
!current_user.nil?
end
end
end
end
Кажется, я не могу получить доступлюбые методы или объекты внутри блока http_basic, включая запрос, env, все, что находится внутри методов helpers, и даже не ошибки!.
Глядя на код, это не имеет смысла.
Кто-нибудь сталкивался с этим раньше?У кого-нибудь есть примеры использования Grape API с http базовой аутентификацией?Примеры в Интернете не являются примерами из реальной жизни.