对于一个简单的概念证明,我正在配置一个Django应用程序进行身份验证
通过python-social-auth
对内部OAuth2服务器进行攻击。注意:我
我是Django的新手,所以仍然试着想办法......
auth方案依赖于带外帐户同步 - 即,
仅允许现有用户,不自动创建新用户。然而
记录的管道配置做“仅关联”似乎没有用
我认为它的方式(在与get_username
和social_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_user
和associate_user
- 似乎没有用
没有'用户'键。没有关于“用户”密钥如何获得的任何其他指导
人口稠密,我想出了:
SOCIAL_AUTH_PIPELINE = (
'ccpoc.auth.load_user',
'social.pipeline.social_auth.associate_user',
)
load_user
知道根据自定义键查找当前用户的位置
在JSON中返回。虽然它有效,但我不确定这是否属于框架的“精神”,或者我是否只是遗漏了一些东西。
答案 0 :(得分:1)
这是有效的,这是与应用程序一致的精神的正确方法,我的文档并不完全正确,那里列出的单一关联的管道假定用户已登录,这不是你的场景,但在文档中没有详细说明。