与Python社交身份验证和Django的仅关联身份验证

时间:2013-12-10 20:26:13

标签: python django python-social-auth

对于一个简单的概念证明,我正在配置一个Django应用程序进行身份验证 通过python-social-auth对内部OAuth2服务器进行攻击。注意:我 我是Django的新手,所以仍然试着想办法......

auth方案依赖于带外帐户同步 - 即, 仅允许现有用户,不自动创建新用户。然而 记录的管道配置做“仅关联”似乎没有用 我认为它的方式(在与get_usernamesocial_uid的各种组合之后);我只能在创建自己的工作后才能使用它 使用'user'键返回dict的管道方法。

我从这个配置开始 http://psa.matiasaguirre.net/docs/pipeline.html#authentication-pipeline

SOCIAL_AUTH_PIPELINE = (
    'social.pipeline.social_auth.social_user',
    'social.pipeline.social_auth.associate_user',
    'social.pipeline.social_auth.load_extra_data',
    'social.pipeline.user.user_details'
)

但前两个 - social_userassociate_user - 似乎没有用 没有'用户'键。没有关于“用户”密钥如何获得的任何其他指导 人口稠密,我想出了:

SOCIAL_AUTH_PIPELINE = (
    'ccpoc.auth.load_user',
    'social.pipeline.social_auth.associate_user',
)

load_user知道根据自定义键查找当前用户的位置 在JSON中返回。虽然它有效,但我不确定这是否属于框架的“精神”,或者我是否只是遗漏了一些东西。

1 个答案:

答案 0 :(得分:1)

这是有效的,这是与应用程序一致的精神的正确方法,我的文档并不完全正确,那里列出的单一关联的管道假定用户已登录,这不是你的场景,但在文档中没有详细说明。