이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 플라스크-httpauth 명령입니다.
프로그램:
이름
플라스크-httpauth - Flask-HTTPAuth 문서
플라스크-HTTP인증 기본 및 다이제스트 HTTP 인증을 제공하는 간단한 확장입니다.
Flask 경로의 경우.
BASIC 입증 예
다음 예제 애플리케이션은 HTTP 기본 인증을 사용하여 경로를 보호합니다. '/':
플라스크 가져오기 플라스크에서
Flask.ext.httpauth에서 HTTPBasicAuth 가져오기
앱 = Flask (__ name__)
인증 = HTTPBasicAuth()
사용자 = {
"존": "안녕하세요",
"수잔": "안녕"
}
@auth.get_password
def get_pw(사용자 이름):
사용자의 사용자 이름인 경우:
users.get(사용자 이름) 반환
반환 없음
@app.route('/')
@auth.login_required
def 인덱스():
"안녕하세요, %s!"를 반환합니다. % 인증.사용자 이름()
__name__ == '__main__'인 경우 :
app.run ()
XNUMXD덴탈의 get_password 콜백은 주어진 사용자 이름과 연결된 비밀번호를 반환해야 합니다.
인수로. Flask-HTTPAuth는 다음 경우에만 액세스를 허용합니다. get_password(사용자 이름) == 암호.
비밀번호가 사용자 데이터베이스에 해시되어 저장된 경우 추가 콜백은 다음과 같습니다.
필요 :
@auth.hash_password
def hash_pw(비밀번호):
md5(비밀번호).hexdigest()를 반환합니다.
때 해시_비밀번호 콜백이 제공되면 액세스 권한이 부여됩니다.
get_password(사용자 이름) == hash_password(비밀번호).
해싱 알고리즘에서 사용자 이름을 알려야 하는 경우 콜백에는 두 시간이 걸릴 수 있습니다.
인수 대신:
@auth.hash_password
def hash_pw(사용자 이름, 비밀번호):
get_salt(사용자 이름)
반환 해시(비밀번호, 소금)
최대한의 유연성을 위해 get_password 및 해시_비밀번호 콜백은 다음과 같습니다.
로 교체 verify_password:
@auth.verify_password
def verify_pw(사용자 이름, 비밀번호):
return call_custom_verify_function(사용자 이름, 비밀번호)
요람 입증 예
다음 예는 이전 예와 유사하지만 HTTP Digest 인증은
익숙한:
플라스크 가져오기 플라스크에서
Flask.ext.httpauth에서 HTTPDigestAuth 가져오기
앱 = Flask (__ name__)
app.config['SECRET_KEY'] = '여기에 비밀 키가 있습니다.'
인증 = HTTPDigestAuth()
사용자 = {
"존": "안녕하세요",
"수잔": "안녕"
}
@auth.get_password
def get_pw(사용자 이름):
사용자의 사용자 이름인 경우:
users.get(사용자 이름) 반환
반환 없음
@app.route('/')
@auth.login_required
def 인덱스():
"안녕하세요, %s!"를 반환합니다. % 인증.사용자 이름()
__name__ == '__main__'인 경우 :
app.run ()
다이제스트 인증은 Flask에 데이터를 저장하기 때문에 세션 반대하다
구성에는 SECRET_KEY 설정할 수 있습니다.
API 사용 설명서
수업 플라스크_httpauth.HTTPBasicAuth
Flask 경로에 대한 HTTP 기본 인증을 처리하는 클래스입니다.
get_password(비밀번호_콜백)
이 콜백 함수는 프레임워크에서 호출되어
특정 사용자의 비밀번호입니다. 예:
@auth.get_password
def get_password(사용자 이름):
db.get_user_password(사용자 이름) 반환
hash_password(hash_password_callback)
정의된 경우 이 콜백 함수는 프레임워크에서 호출되어 적용됩니다.
클라이언트가 제공한 비밀번호에 대한 사용자 정의 해싱 알고리즘. 이 경우
콜백이 제공되지 않으면 비밀번호가 변경되지 않은 상태로 확인됩니다. 콜백
하나 또는 두 개의 인수를 취할 수 있습니다. 인수가 XNUMX개인 버전은
해시에 대한 비밀번호, 두 인수 버전은 사용자 이름과
그 순서대로 비밀번호를 입력하세요. 단일 인수 콜백 예시:
@auth.hash_password
def hash_password(비밀번호):
md5(비밀번호).hexdigest()를 반환합니다.
두 개의 인수 콜백 예시:
@auth.hash_password
def hash_pw(사용자 이름, 비밀번호):
get_salt(사용자 이름)
반환 해시(비밀번호, 소금)
verify_password(verify_password_callback)
정의된 경우 이 콜백 함수는 프레임워크에서 호출되어 확인됩니다.
클라이언트가 제공한 사용자 이름과 비밀번호 조합이 유효합니다.
콜백 함수는 사용자 이름과 비밀번호, 두 개의 인수를 사용합니다.
반환해야합니다 참된 or 거짓. 사용 예:
@auth.verify_password
def verify_password(사용자 이름, 비밀번호):
사용자 = User.query.filter_by(사용자 이름).first()
사용자가 아닌 경우:
False를 반환
passlib.hash.sha256_crypt.verify(비밀번호, user.password_hash)를 반환합니다.
다음과 같은 경우에 주의하세요. verify_password 콜백이 제공됩니다 get_password 및
해시_비밀번호 콜백은 사용되지 않습니다.
error_handler(오류_콜백)
정의된 경우 이 콜백 함수는 프레임워크에서 호출됩니다.
클라이언트에 인증 오류를 다시 보내려면 필요합니다. 반환
이 함수의 값은 문자열로 된 응답 본문이거나
다음으로 생성된 응답 객체일 수도 있습니다. 응답하다. 이 콜백의 경우
제공되지 않으면 기본 오류 응답이 생성됩니다. 예:
@auth.error_handler
정의 auth_error():
"<h1>액세스가 거부되었습니다</h1>"를 반환합니다.
login_required(view_function_callback)
이 콜백 함수는 인증이 성공하면 호출됩니다. 이것
일반적으로 Flask 보기 기능입니다. 예:
@app.route('/private')
@auth.login_required
데프 private_page():
return "승인된 사람에게만!"
사용자 이름()
이 클래스로 보호되는 뷰 함수는 기록된 뷰에 액세스할 수 있습니다.
이 방법을 통해 사용자 이름. 예:
@app.route('/')
@auth.login_required
def 인덱스():
"안녕하세요, %s!"를 반환합니다. % 인증.사용자 이름()
수업 플라스크.ext.httpauth.HTTPDigestAuth
Flask 경로에 대한 HTTP Digest 인증을 처리하는 클래스입니다. 그만큼 SECRET_KEY
세션이 작동하려면 Flask 애플리케이션에서 구성을 설정해야 합니다.
Flask는 기본적으로 클라이언트의 사용자 세션을 보안 쿠키로 저장하므로
클라이언트는 쿠키를 처리할 수 있어야 합니다. 웹 브라우저가 아닌 클라이언트를 지원하려면
또는 쿠키를 처리할 수 없는 세션 인터페이스 세션을 작성하는
서버를 사용해야 합니다.
get_password(비밀번호_콜백)
문서와 예시는 기본 인증을 참조하세요.
error_handler(오류_콜백)
문서와 예시는 기본 인증을 참조하세요.
login_required(view_function_callback)
문서와 예시는 기본 인증을 참조하세요.
사용자 이름()
문서와 예시는 기본 인증을 참조하세요.
onworks.net 서비스를 사용하여 온라인으로 Flask-httpauth 사용