2013-07-30 23 views
5

Szukam wdrożenia uwierzytelniania społecznego w naszej aplikacji z LinkedIn, Google, Facebook. Obecnie korzystam z zabezpieczenia kolbowego, aby pomóc zarządzać użytkownikami/rolami w naszej aplikacji. Szukam wskazówek dotyczących najlepszych praktyk z Flask/Flask-Security i Social Authentication.Wdrażanie logowania społecznościowego w Flask

Widziałem wtyczkę dla społeczności, ale chciałbym mieć opcję lokalnego logowania opartego na formularzu.

Do tej pory planuję napisać nową implementację widoku logowania dla zabezpieczenia kolby, która może określić, czy używam witryny społecznościowej (poprzez podanie parametru zapytania, gdy użytkownik kliknie "login z XYZ") dla login. Po uruchomieniu uwierzytelniania społecznego planowałem uruchomić zwykły login do ochrony kolb, aby ustawić wszystkie odpowiednie tokeny sesji, użytkowników i role, więc dekorator @login_required będzie nadal działał.

Naprawdę nie widziałem żadnych haczyków do przesłonięcia funkcji widoku logowania w zabezpieczeniach skrzynek, więc planuję 1) skopiowanie istniejącej implementacji do mojej własnej aplikacji lub 2) wywołanie flask_security_views :: login.

Zastanawiam się jednak, czy jest coś z tego, co już zostało gdzieś zaimplementowane, czy lepszy start. Wygląda na to, że zamierzam znacznie ograniczyć istniejący kod.

Dzięki

+2

"Widziałem wtyczkę dla społeczności, ale chciałbym mieć opcję lokalnego logowania opartego na formularzu." Możesz to zrobić za pomocą Flask-Social. Polecam, patrząc na [Przykład społecznościowy Flask] (https://github.com/mattupstate/flask-social-example), który ma na to przykład. W przypadku logowania opartego na formularzu należy wskazać formularz HTML na adres url dla "security.login". Aby zrobić logowanie społecznościowe, skieruj użytkownika na 'social.login'. –

Odpowiedz

1

Mark Hildreth ma rację.

flask-social pozwala na zalogowanie się za pomocą formularza (nazwa użytkownika/hasło) lub poprzez serwis społecznościowy. Dzięki temu można go używać w połączeniu z zabezpieczeniem kolbowym, logowaniem kolb lub dowolnym uwierzytelnianiem opartym na haśle. Użyłem flask-social w połączeniu z zabezpieczeniem kolbowym i mogę potwierdzić, że działają całkiem dobrze razem.

Linki do kolb o numerach User obiektu do zera lub więcej dodatkowych kont społecznościowych, które są przechowywane w oddzielnej tabeli/magazynie danych. Tak więc nie zastępuje istniejącej infrastruktury hasła ... po prostu powiększa model User i dodaje dodatkowe metody społeczne, aby umożliwić użytkownikowi logowanie się za pomocą kont społecznościowych.