2013-07-30 9 views
5

Cercare di implementare l'autenticazione sociale nella nostra applicazione con LinkedIn, Google, Facebook. Attualmente sto usando la sicurezza delle palline per aiutare a gestire gli utenti/ruoli nella nostra applicazione. Sto cercando indicazioni sulle migliori pratiche con Flask/Flask-Security e Social Authentication.Implementazione accesso social in Flask

Ho visto il plug-in flask-social, ma mi piacerebbe avere anche l'opzione di accesso al modulo locale.

Finora, sto pianificando di scrivere una nuova implementazione della vista di login per la sicurezza dei flask che può determinare se sto usando un sito social (passando un parametro di query quando l'utente fa clic su "login con XYZ") per il login Dopo l'autenticazione social, stavo pianificando di eseguire il login regolare di sicurezza delle fiaschette per impostare tutti i token di sessione appropriati e l'utente e i ruoli in modo che il decoratore @login_required continui a funzionare.

Non ho visto alcun hook per sovrascrivere la funzione di visualizzazione di login in sicurezza di flask, quindi sto pianificando su 1) copiare l'implementazione esistente nella mia app o 2) chiamando flask_security_views :: login.

Tuttavia, mi chiedo se c'è qualcosa di questo che è già stato implementato da qualche parte, o un inizio migliore. Sembra che sto davvero tagliando un sacco di codice esistente.

Grazie

+2

"Ho visto il plug-in flask-social, ma mi piacerebbe avere anche l'opzione di accesso al modulo locale." Puoi farlo con Flask-Social. Consiglierei di guardare l'esempio [Flask Social] (https://github.com/mattupstate/flask-social-example), che ha un esempio di come farlo. Per l'accesso basato su moduli, indirizzare il modulo HTML all'URL per 'security.login'. Per effettuare un accesso social, indirizzare l'utente a un 'social.login'. –

risposta

1

Mark Hildreth è corretto.

flask-social consente di accedere tramite un modulo (nome utente/password) o tramite social. Quindi è possibile utilizzarlo in combinazione con la sicurezza delle fiasche, l'accesso alle fiasche o qualsiasi altra autenticazione basata su password che si desidera. Ho usato flask-social in congiunzione con la sicurezza del pallone e posso confermare che funzionano abbastanza bene insieme.

flask-social links ogni User oggetto a zero o più account social aggiuntivi, che sono memorizzati in una tabella/datastore separata. Pertanto, non sostituisce l'infrastruttura della password esistente ... semplicemente aumenta il modello User e aggiunge ulteriori metodi social per consentire all'utente di accedere in alternativa tramite account social.