2012-09-25 4 views
6

플라스크 로그인 확장을 사용하여 플라스크 응용 프로그램을 설정 중입니다. flask-login 문서에서는 세션 토큰을 만드는 데 단순히 사용자 ID와 앱 비밀번호를 사용하지 않는 대체 토큰 생성기를 설정하는 것이 좋습니다 (기본 방법). 그러나이를 수행하는 방법에 대한 명확한 권장 사항은 없습니다.플라스크 로그인 토큰 로더

따라서 User.get_auth_token()의 경우 사용자 이메일과 비밀번호를 매개 변수로 사용하여 make_secure_token 함수를 사용하고 있습니다. 따라서이 매개 변수 + 앱 비밀의 해시를 얻을 수 있습니다.

다음으로, 나는 token_loader 콜백을 사용하여 토큰에서 사용자를 얻을 수 있어야합니다. 플라스크 로그인에서 토큰을 생성하는 기본 방법은 원시 사용자 ID와 사용자 ID + 앱 비밀의 해시를 모두 포함하는 것입니다. 따라서 토큰에서 사용자를 쉽게 찾을 수 있습니다. ID를 가져 와서 사용자를 찾아보십시오.

하지만 세션 토큰에 사용자 ID를 표시해야합니까? 그렇지 않으면 데이터베이스 나 다른 곳의 사용자 ID로 세션 토큰을 저장해야합니까?

요약하면 누구나 보안 토큰을 만드는 것이 가장 좋은 방법을 알고 있습니까 & 대응 token_loader 콜백입니까?

답변

3

Flask 메일 링리스트에서 Matt Wright는 플라스크 보안 확장 프로그램에서 his implementation으로 알려 줬습니다. 그는 itsdangerous을 사용하여 사용자 ID와 암호 해시로 구성된 일련화된 (URLSafeTimedSerializer()을 통해) 목록을 인코딩하는 서명 된 토큰을 만듭니다. 그런 다음 토큰을 디코딩하여 사용자 ID를 가져올 수 있습니다.

관련 문제