Rails: как добавить HTTP AUTH при настраиваемом действии - PullRequest
0 голосов
/ 01 мая 2019

Как добавить 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'

Ответы [ 2 ]

2 голосов
/ 01 мая 2019
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

1 голос
/ 01 мая 2019

Вы можете использовать метод 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
...