use
을 통해 Rack::Auth::Basic
을 넣는 경우 실제로 요청 처리 체인에 삽입합니다. 그러면 모든 요청을 인증하려고 시도 할 것입니다. 선택적으로 사용하려면 특정 경로에서만 해당 요청 끝점 (작업)에서만 인증을 수행해야합니다. 같은 뭔가 -
# helpers in ApplicationController
def authorized?
@auth = Rack::Auth::Basic::Request.new(request.env)
@auth.provided? && @auth.basic? && @auth.credentials && @auth.credentials == ['username', 'password']
end
def username(username)
@auth.credentials[0]
end
# action in PostsController
def index
if authorized?(params[:id]) && username == "admin"
# protected stuff
else
render :text => "unauthorized"
end
end
참조 : Sinatra doc
인증의 종류는 전체 사용자 계정 및 세션 기반의 접근 방식을 수행하여 훨씬 더 처리 할 수 있지만. 레일 3.1 또는 devise의 체크 아웃 has_secure_password.