首页 文章

Django将Python社交身份验证和默认身份验证与自定义用户模型集成:

提问于
浏览
0

我有一个我正在研究的项目,需要一些用户通过Facebook和其他人进行身份验证,以便使用自定义模型进行注册 . Facebook用户将没有与自定义模型相同的注册凭据 . 例如,将有餐馆老板注册和客户注册 . 客户不必放置街道地址,他们只需登录即可 .

我的意图是让餐馆老板通过自定义 Profiles 模型和facebook用户注册,只需通过defualt社交身份验证登录,但每当我将两者合并时,社交身份验证开始使用自定义模型,因为我定义了自定义用户模型在设置内 . 有没有办法区分python社交认证后端只使用默认或一种方式来更新我当前的自定义用户模型以拥有一个Facebook细分 . 我已经在网上搜索了很长时间,但似乎找不到任何可以将两者结合起来的东西(1),但它没有成功 . 然而,我可以成功地运行一个或另一个,具体取决于我是否在settings.py文件中指定了用户模型 .

这很简单,但我不知道如何通过社交身份验证来查看其默认和djangos身份验证以查看我的自定义模型 .

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

1 回答

  • 2

    为了区分一种类型的用户,您可以执行以下操作:

    First ,在您的设置文件中,存储以下内容:

    FIELDS_STORED_IN_SESSION = ['type']
    

    这将存储在管道的每个功能的 strategy 参数中

    Then ,在必要时更改管道 . 例如,在 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)
        }
    

相关问题