Autenticação básica Nginx em localização específica [fechada]

1

Eu tenho um aplicativo rails e gostaria de Basic Basic Auth Nginx em local específico e agora estou fazendo como

location / {
        passenger_enabled on;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header  X-FORWARDED_PROTO https;
        proxy_redirect off;
}

location /somelocation {
        auth_basic "Restricted";                                #For Basic Auth
        auth_basic_user_file /usr/local/etc/nginx/.htpasswd;    #For Basic Auth

        passenger_enabled on;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header  X-FORWARDED_PROTO https;
        proxy_redirect off;
}

Existe uma maneira melhor de fazer isso?

    
por Rok Jaklič 18.08.2015 / 00:11

1 resposta

0

Sim, o Rails pode fazê-lo dentro dos controladores, consulte docs para obter detalhes:

class PostsController < ApplicationController
   http_basic_authenticate_with name: "dhh", password: "secret", except: :index

   def index
     render plain: "Everyone can see me!"
   end

   def edit
     render plain: "I'm only accessible if you know the password"
   end
end
    
por 18.08.2015 / 09:49