【问题标题】:Email auth backend breaks django-social-auth电子邮件身份验证后端中断 django-social-auth
【发布时间】:2012-02-02 05:33:04
【问题描述】:

我最近添加了一个额外的身份验证后端,以允许用户使用他们的电子邮件地址或用户名登录,但它似乎破坏了 django-social-auth,因为启用它后,当我尝试通过 Facebook 登录时,我收到了消息Incorrect authentication service

后端的代码是:

class EmailBackend:
    supports_object_permissions = False
    supports_anonymous_user = False
    supports_inactive_user = False 

    def authenticate(self, username=None, password=None):
        if email_re.search(username):
            try:
                user = User.objects.get(email=username)
            except User.DoesNotExist:
                return None
        else:
            try:
                user = User.objects.get(username=username)
            except User.DoesNotExist:
                return None
        if user.check_password(password):
            return user
        return None

    def get_user(self, user_id):
        try:
            return User.objects.get(pk=user_id)
        except User.DoesNotExist:
            return None

我从Django snippets得到了代码sn-p

我的 AUTHENTICATION_BACKENDS:

AUTHENTICATION_BACKENDS = (
    'social_auth.backends.twitter.TwitterBackend',
    'social_auth.backends.facebook.FacebookBackend',
    'apps.members.backends.EmailBackend',
)

【问题讨论】:

    标签: django authentication django-socialauth


    【解决方案1】:

    我已经成功地将电子邮件身份验证后端与 django-social-auth 一起使用。我不记得为它做了什么特别的工作,所以它可能不是很明显,这是我在代码中可以看到的唯一区别:

    我在AUTHENTICATION_BACKENDS 列表中首先定义了我的电子邮件后端,这在这里可能很重要。

    我没有定义任何 supports_object_permissions supports_anonymous_user supports_inactive_user

    【讨论】:

    • 很有趣,我会看看这个提示是否有帮助..虽然我已经切换到 Django Email Auth
    • 该建议没有帮助,但感谢您的帮助...现在我将您的回复标记为答案。无论如何,我的电子邮件身份验证应用程序仍然运行良好......如果它没有损坏,请不要乱用它
    猜你喜欢
    • 2012-08-10
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    • 2017-02-20
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 2012-10-21
    相关资源
    最近更新 更多