2016-06-18 3 views
0

레일스 웹 사이트 루트에 기본 인증을 추가하려면 어떻게합니까? dev에 나는 이것을 localhost : 3000에 표시하고 싶습니다. 모든 컨트롤러 메소드에서 작동하는 애플리케이션 컨트롤러에 기본 인증을 추가 할 수있었습니다. 그러나 웹 사이트의 루트 (보호 된 페이지로 루트를 리디렉션하지 않음)에 기본 인증을 적용 할 수도 있습니다. 내가 루트가 routes.rb 파일에 설정이없는 당신을 추측하고있어기본 웹 사이트에 기본 인증 추가 기본 웹 사이트

class ApplicationController < ActionController::Base 
    http_basic_authenticate_with name: ENV["USER_NAME"], password: ENV["PASSWORD"] if ENV["USER_NAME"].present? 


    # Prevent CSRF attacks by raising an exception. 
    # For APIs, you may want to use :null_session instead. 
    protect_from_forgery with: :exception 
end 
+0

"웹 사이트 루트에 기본 인증을 적용 하시겠습니까?" 이미 전체 웹 사이트에 인증을 추가 할 기본 인증을 애플리케이션 컨트롤러에 추가했습니다. –

+0

작동하지 않습니다. 루트가 아닌 – user1322092

+0

을 제외하고 제어기 메소드 만 보호합니다. 왜 작동하지 않는지 확실하지 않습니다. – Saad

답변

0

: application_controller.rb에서

, 나는 현재 다음있다. 경로 파일에 추가하면 모든 경로에서 인증을 받게됩니다.

root "your_controller#some_action" 

당신은 여기에 대한 자세한 내용을보실 수 있습니다 : http://docs.railsbridge.org/intro-to-rails/setting_the_default_page

+0

당신은 옳았지만 제 문제는 해결되지 않습니다. 사람을 내가 보호하려고하는 페이지로 리디렉션하고 싶지 않습니다 (보안 설정에서 모호함 제거). – user1322092

+0

응용 프로그램 컨트롤러에 인증 설정이 있습니다. 먼저 컨트롤러를 통과해야합니다. 컨트롤러를 거치지 않고 인증을 원한다면 다른 유형의 인증을 사용해야 할 수도 있습니다. –

+0

@ user1322092, 라우트 파일에서 루트를 사용할 때 URL 표시 줄의 경로는 로컬 호스트 : 3000/개인용으로 유지하려는 경로를 나타내지 않을 것임을 유의하십시오. –

0

당신이 말한대로 :

나는 모든 컨트롤러 방법을 작동 응용 프로그램 컨트롤러에 기본 인증을 추가 할 수 있었다.

나는 루트 경로에 컨트롤러 # 방법 경로가 있다고 생각하지 않으므로 localhost : 3000에 요청을 보내면 아무런 동작도 발생하지 않으며이 경우 기본 인증에 의해 처리되지 않습니다.

+0

맞지만 그게 내 문제를 해결하지 못합니다 문제. 나는 보호하고자하는 페이지로 리다이렉트하고 싶지 않다. 예, 더미 페이지를 만들 수 있습니다. 가능한지 계속보고 싶습니다. – user1322092

관련 문제