1

对于一个简单的概念证明,我正在配置一个 Django 应用程序以通过python-social-auth. 注意:我是 Django 的新手,所以仍在尝试解决问题...

auth 方案依赖于带外帐户同步——即只允许现有用户,并且不自动创建新用户。但是,记录在案的“仅关联”的管道配置似乎并没有像我想象的那样工作(在与get_usernameand进行各种组合之后social_uid);我只能在创建自己的管道方法以返回带有“用户”键的字典后才能使其工作。

我从 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 中返回的自定义键来查找当前用户。虽然它有效,但我不确定这是否在框架的“精神”中,或者我只是错过了一些东西。

4

1 回答 1

1

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

于 2013-12-11T11:41:29.010 回答