为了进行简单的概念证明,我正在配置 Django 应用程序进行身份验证 通过 python-social-auth 针对内部 OAuth2 服务器。注:我 我是 Django 新手,所以仍在尝试解决问题...
身份验证方案依赖于带外帐户同步 - 即,
只允许现有用户,不自动创建新用户。但是,那
记录的管道配置“仅关联”似乎不起作用
就像我想象的那样(在与 get_username
和 social_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_user
和 associate_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/