이 방법을 사용하면 기본 http 인증 (작은 대화 상자가 사용자 이름과 암호를 묻는 팝업 형식)을 구현할 수 있습니다. 일반적으로 개발 사이트 또는 관리 영역에 대한 액세스를 제한하는 좋은 방법입니다. 예를 들어 :
class AdminController < ApplicationController
before_filter :authenticate
def authenticate
authenticate_or_request_with_http_basic('Administration') do |username, password|
username == 'admin' && password == 'password'
end
end
end
이 기능은 기본 HTTP 인증 사용자 이름과 암호에 대한 요청을 할 것 중 하나, 또는 입력 한 후 인증이 정확하면, 실제로 확인합니다. 즉,이 함수는 authenticate_with_http_basic을 호출하거나 request_http_basic_authentication을 호출합니다. 그것에 대해 더 자세히 읽고 더 많은 예제를보실 수 있습니다 here. 일반적으로 authenticate_with_http_basic 또는 request_http_basic_authentication을 호출하는 대신 authenticate_or_request_with_http_basic을 호출합니다. 왜냐하면 전자의 함수가 후자의 함수에 모두 적합하기 때문입니다.
P.S : authenticate_with_http_basic은 POST 변수를 사용하지 않고 헤더 정보를 사용하여 사용자 이름과 암호를 가져옵니다 (request.env [ 'HTTP_AUTHORIZATION']). 권한 부여 기능 here에 대한 자세한 정보를 볼 수 있습니다.
는 POST 변수'username'과'password'에서'authenticate_with_http_basic' 추출물을 수행하고 그 그것 뿐이다 (명확하게하기 위해 레일 (5)에 대해 이야기)? 가장 기본적인 설명은 무엇입니까? –
나는 이것을 내 게시물에도 추가했습니다. 간단히 말해 POST 변수를 사용하지 않고 요청 헤더의 request.env 데이터를 사용합니다. –
HTTP 헤더의 사용자 이름과 비밀번호는 어떤 상황입니까? '/ session'과 post 변수에 대한 POST는 다음과 같습니다 :'authenticity_token = TrtiGrt8CcDl9DiVbZLA6Yi24g % 2FQ6qazMtOgwlJqpjc 3D & login = foo & password = 123123 & remember_me = 1 & commit = Log + in' 이렇게 POST 형태의 ('/ session/new' 또는'/ login') 나는 사용자가 일반적으로 POST 변수로 로그인했다고 생각 했습니까? –