2013-07-30 94 views
5

希望通過LinkedIn,Google,Facebook在我們的應用程序中實現社交認證。我目前使用flask-security來幫助管理我們應用程序中的用戶/角色。我正在尋找一些關於Flask/Flask-Security和社交認證最佳實踐的指導。在Flask中實現社交登錄

我已經看到了flask-social插件,但我想要選擇本地基於表單的登錄。

到目前爲止,我正在計劃爲flask-security編寫一個新的登錄視圖實現,它可以確定我是否使用社交網站(通過在用戶單擊「使用XYZ登錄時傳遞查詢參數」)登錄。在社交認證發生後,我計劃運行常規flask-security登錄來設置所有適當的會話令牌和用戶以及角色,這樣@login_required裝飾器將繼續工作。

我真的沒有看到任何掛鉤在flask-security中覆蓋登錄視圖功能,所以我打算1)將現有的實現複製到我自己的應用程序或2)調用flask_security_views :: login。

但是,我想知道是否有一些這是已經實施的地方,或更好的開始。看來我真的會削減很多現有的代碼。

謝謝

+2

「我已經看到了flask-social插件,但我想也可以選擇本地基於表單的登錄。」你可以用Flask-Social做到這一點。我建議看一下[Flask Social Example](https://github.com/mattupstate/flask-social-example),它有一個這樣做的例子。對於基於表單的登錄,請將HTML表單指向'security.login'的url。要進行社交登錄,請將用戶指向「social.login」。 –

回答

1

Mark Hildreth是正確的。

flask-social允許您通過表單(用戶名/密碼)或通過社交網站登錄。 因此,您可以將其與flask-security,flask-login或任何您想要的基於密碼的身份驗證結合使用。我已經使用了flask-social和flask-security,並且可以確認它們在一起很好地工作。

flask-social將每個User對象鏈接到零個或多個額外的社交帳戶,這些帳戶存儲在單獨的表/數據存儲中。因此,它不會取代現有的密碼基礎設施......它只是增加了User模型並添加了額外的社交方法,以允許用戶通過社交帳戶交替登錄。