2015-05-23 94 views
0

我有一個項目,我正在努力,需要一些用戶通過Facebook和其他人認證使用自定義模型進行身份驗證。 facebook用戶將不具有與自定義模型相同的註冊憑證。例如,將有一家餐館老闆註冊並註冊一個客戶。客戶不需要輸入街道地址,他們只需登錄即可。Django集成Python社交身份驗證和默認身份驗證與自定義用戶模型:

我的意圖是通過自定義配置文件模型和facebook用戶通過默認的社交身份驗證進行簡單登錄,但每當將兩者結合使用時,社交身份驗證開始使用自定義模型,因爲我定義了設置中的自定義用戶模型。有沒有辦法區分python社交身份驗證後端只使用默認或一種方式來更新我目前的自定義用戶模型有一個Facebook段。我已經在網上搜索了很長時間,但似乎找不到可以將兩者結合在一起的任何內容(1),但它沒有成功。但是,我可以讓一個或另一個成功工作,具體取決於我是否在我的settings.py文件中指定了用戶模型。

這很簡單,但我不知道如何獲得社交身份驗證以查看其默認和djangos身份驗證以查看我的自定義模型。

(1) - http://code.techandstartup.com/django/profiles/

回答

2

爲了區分不同類型的用戶,你可以做這樣的事情:

首先,在你的設置文件,存儲以下內容:

FIELDS_STORED_IN_SESSION = ['type'] 

這將存儲在strategy參數流水線的每一個功能

然後,在必要時更換管道。例如,在你的create_user管道功能中,你可以這樣做:

user_type = strategy.session_get('type') 

if user_type != 'customuser': 
    return { 
     'is_new': True, 
     'user': strategy.create_user(**fields) 
    } 
else: 
    return { 
     'is_new': True, 
     'user': create_restaurant(**fields) 
    }