4

我正在为 django 应用程序编写一些测试脚本,该应用程序依赖 django_social_auth 来管理用户身份验证和登录(仅限 Facebook 登录)。

我想绕过 django_social_auth 的登录部分 - 我已经有一些测试用户,并且我通过其他测试更早地获得了他们的身份验证令牌。

从技术上讲,我不应该再次登录我的测试用户 - 现有的有效令牌应该足以进行此测试。

如何绕过用户登录过程对 django_social_auth 系统进行机器处理以使用我现有的身份验证令牌副本?

(我应该补充一点,在他们的身份验证和我运行此测试的时间点之间,一些用户的数据可能已从我的数据库中删除)

4

1 回答 1

1

我最近做了类似的定制。您必须覆盖默认值SOCIAL_AUTH_PIPELINE。我建议您编写一些处理程序并在管道中替换相同的处理程序。有关更多详细信息,您可以参考http://django-social-auth.readthedocs.org/en/latest/pipeline.html

我的增强管道:

SOCIAL_AUTH_PIPELINE = (
                'social_auth.backends.pipeline.social.social_auth_user',
                # Removed by default since it can be a dangerouse behavior that
                # could lead to accounts take over.
                #'social_auth.backends.pipeline.associate.associate_by_email',
                'social_auth.backends.pipeline.user.get_username',
                #'social_auth.backends.pipeline.user.create_user',
                'myproject.custom.create_user',
                'social_auth.backends.pipeline.social.associate_user',
                #'social_auth.backends.pipeline.social.load_extra_data',
                'myproject.custom.load_extra_data',
                'social_auth.backends.pipeline.user.update_user_details',
           )
于 2013-02-19T16:00:55.507 回答