2014-04-25 79 views
1

我的網站有一些使用django默認用戶模型的普通用戶,但對於某個特定功能,我希望人們能夠使用他們的社交帳戶登錄(twitter,fb..etc)使用python-social-auth,而不需要將這些登錄信息與用戶模型一起保存在數據庫中(無帳戶創建,無法執行某些正常的用戶任務),並且會話超時。零足跡Python-Social-Auth身份驗證

我環顧四周尋找方法,但我的小研究沒有成果。有任何想法嗎?

摘要:

  1. 普通用戶和社會(這樣我就可以限制什麼樣的社會auth'd用戶可以做)
  2. 會話超時之間的分隔爲社會auth'd用戶
  3. 沒有另外的社交授權用戶的用戶表(無腳印)。
  4. 可選:獲取用於記錄目的的社交用戶名和ID。

感謝

回答

0

我會嘗試使用和django.contrib.auth.models.Permission來解決這個問題。爲您的應用程序的功能創建一個具有自定義權限的通用組,並將所有普通用戶添加到該組中。

保存由python-social-auth創建的賬戶默認爲django.contrib.auth.models.User,但創建單獨的組,沒有任何權限。

如有必要,創建一些計劃任務(使用cronjob或Celery),該任務將通過用戶並禁用/刪除過期的任務。

1

通過添加設置SOCIAL_AUTH_USER_MODEL,您可以通過添加python-social-auth的自定義用戶模型來區分社交用戶。檢查設置文檔在http://psa.matiasaguirre.net/docs/configuration/settings.html#user-model

+0

我試過,但在運行執行syncdb它扔了錯誤: CommandError:一個或多個模型沒有驗證: auth.user:訪問者對M2M領域的「羣體」與相關M2M領域的衝突'Group.user_set'。將'related_name'參數添加到'groups'的定義中。 auth.user:m2m字段'user_permissions'的訪問者與相關m2m字段'Permission.user_set'發生衝突。爲'user_permissions'的定義添加一個related_name參數。 main.voter:m2m字段'組'的訪問器與相關的m2m字段'Group.user_set'發生衝突。將'related_name'參數添加到'groups'的定義中。 – Orca

+0

請注意,main.voter是我想要的自定義用戶。 – Orca

+0

這看起來像是您的自定義模型定義中的一個問題,您的模型類中的幾個字段以及django內置用戶模型中的相關名稱,您的模型如何定義? – omab