2014-04-07 1 views
4

플라스크 및 HTTP Basic Auth를 사용하여 로그인 시스템을 만들려고합니다. 내 질문은 데이터베이스에서 사용자 정보를 제공하는 것이 내 책임입니까, 아니면 기본 사용자가 저 데이터베이스를 만들고 액세스합니까? 그렇지 않다면 어떻게해야합니까?Flask HTTP Basicauth - 어떻게 작동합니까?

+0

basicauth는 사용자 이름과 암호를 서버와 교환하기위한 표준입니다. 인증을위한 사용자 정보는 제공하지 않습니다. –

답변

11

Werkzeug는 사용자의 기본 인증 헤더를 사용자 이름과 암호로 디코딩 할 수 있습니다. 나머지는 귀하가 그 정보로 무엇을하고 싶은지를 확인하는 것입니다.

request.authorization attributeAuthorization object을 반환합니다. 기본 인증 헤더의 경우 usernamepassword 만 설정됩니다.

단순한 Flask snippet을 사용하면 데코레이터에서 해당 객체를 사용하여 하드 코딩 된 정보로부터 Flask 경로를 보호 할 수 있습니다.

Flask-Login과 같은 프로젝트를 사용하면 기본 인증을 통해 더 복잡한 로그인을 관리하고 사용자 모델을 제공 할 수 있습니다. 그 모델은 데이터베이스 나 원하는 다른 어떤 것에 저장 될 수 있습니다.

Flask-Security에서 Flask-Login 및 기타 패키지를 사용하여 기본 인증 및 세션 기반 로그인을 제공하는보다 완벽하게 통합 된 보안 패키지를 확인할 수 있습니다.

7

Flask-HTTPAuth 확장자 (부끄러워 플러그 저자, 저는 저자입니다)는 HTTP Basic Auth의 구현을 간소화합니다. request.authorization 데이터로 직접 작업하는 대신 인증 논리를 연결하는 곳에서 콜백 함수를 직접 설정할 수 있습니다.

데이터베이스 질문과 관련하여 Flask-HTTPAuth는 사용자 저장 방법에 대한 가정을하지 않습니다. 사용자를 검색하고 암호의 유효성을 검사하는 논리를 제공해야합니다.