2012-09-25 11 views
6

Przygotowuję aplikację Flask z rozszerzeniem do logowania w kolbie. Dokumentacja logowania w kolbie zaleca ustawienie alternatywnego generatora tokenów, który nie używa po prostu identyfikatora użytkownika i tajnego klucza aplikacji do utworzenia tokenu sesji (który jest metodą domyślną). Ale nie zapewnia żadnych wyraźnych zaleceń, jak to zrobić.Ładowarka tokarka z loginem do kontenera

Tak, dla User.get_auth_token() używam funkcji make_secure_token z e-mailem użytkownika i hasłem jako parametrami (otrzymuję więc skrót tych parametrów + sekret aplikacji).

Następnie muszę mieć możliwość odebrania użytkownika z tokena za pomocą wywołania zwrotnego token_loader. Domyślną metodą generowania tokenów w logowaniu na kolbę jest zarówno podanie nieprzetworzonego identyfikatora użytkownika, jak i skrótu identyfikatora użytkownika + sekret aplikacji. To sprawia, że ​​znalezienie użytkownika z tokena jest bardzo proste - wystarczy pobrać identyfikator i wyszukać użytkownika.

Ale czy powinienem w ogóle ujawniać identyfikator użytkownika w tokenie sesji? Jeśli nie, czy powinienem przechowywać token sesji w bazie danych lub w innym miejscu z identyfikatorem użytkownika, aby umożliwić wyszukiwanie?

W skrócie: czy ktoś wie, jaka jest najlepsza praktyka w tworzeniu bezpiecznego tokena & odpowiadającego oddzwonienia token_loader?

Odpowiedz

3

Na liście mailingowej Flask, Matt Wright wskazał mi his implementation w rozszerzeniu bezpieczeństwa kolby. Używa itsdangerous do utworzenia podpisanego tokena, który koduje listę z numerem seryjnym (przez URLSafeTimedSerializer()) składającą się z ID użytkownika i skrótu hasła. Token może zostać zdekodowany w celu pobrania identyfikatora użytkownika.

Powiązane problemy