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

标签 python django python-social-auth

为了进行简单的概念证明,我正在配置 Django 应用程序进行身份验证 通过 python-social-auth 针对内部 OAuth2 服务器。注:我 我是 Django 新手,所以仍在尝试解决问题...

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

我从这个配置开始 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 - 似乎不起作用,如果 没有“用户” key 。没有任何其他关于如何获取“用户” key 的指导 填充后,我想出了:

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

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

最佳答案

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

关于python - 仅关联身份验证与 Python 社交身份验证和 Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20504515/

相关文章:

python - 使用 Python 将现有字典转换为 JSON

python - DRF获取OneToOne模型的所有字段

python - 逐行读取文件并追加单词

python - 如何使用win32com从word文档中按颜色获取文本?

python - Scrapy - 如何存储下载图像的本地路径?

google-oauth - 使用python-social-auth的Google Oauth2刷新 token 错误

python - 在 Python Social Auth 中添加新后端

python - Boto3 视频从 Heroku 上传 0 字节

Django:扩展用户时,最好使用 OneToOneField(User) 或 ForeignKey(User, unique=True)?

python - 如何将Django OAuth Toolkit与Python Social Auth结合使用?