Как добавить HTTP AUTH при настраиваемом действии контроллера?
class MyController < ApplicationController def index #NO AUTH end def custom #I NEED HTTP AUTH ONLY HERE end end
rout.rb:
get 'my/custom', to: 'my#custom'
class MyController < ApplicationController http_basic_authenticate_with name: "dhh", password: "secret", only: [:custom] def custom #I NEED HTTP AUTH ONLY HERE end end
Вы также можете вызвать auth непосредственно в действии:
class MyController < ApplicationController def custom authenticate_or_request_with_http_basic do |username, password| username == "dhh" && password == "secret" end ... end end
Вот документы для более расширенного использования: https://api.rubyonrails.org/classes/ActionController/HttpAuthentication/Basic.html
Вы можете использовать метод http_basic_authenticate_with . Я передал символ: custom для опции: only, что означает, что аутентификация будет применяться только к этому методу.
class MyController < ApplicationController http_basic_authenticate_with name: "username", password: "password", only: :custom def index #NO AUTH end def custom #I NEED HTTP AUTH ONLY HERE end end