首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django-rest-framework快速启动:登录到它的API

django-rest-framework快速启动:登录到它的API
EN

Stack Overflow用户
提问于 2014-02-14 10:13:06
回答 2查看 936关注 0票数 1

我已经设置了django-rest框架及其基本用户/组api,如下所述:http://www.django-rest-framework.org/。虽然我可以通过api看到用户和组,但我无法登录。这里有/auth/登录页面,每当我插入un & passwd并提交它时,只需重定向到同一个页面,而不需要任何渲染消息。我想知道我错过了什么。我如何“登录”到API。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-14 12:13:27

这是因为我使用了一个定制的auth后端:

代码语言:javascript
复制
# settings.py
AUTHENTICATION_BACKENDS = (
    'web.auth_backends.EmailAuthBackend',
)

# auth_backends.py
class EmailAuthBackend(object):
    def authenticate(self, email=None, password=None):
        try:
            user = User.objects.get(email__iexact=email)
            if user.check_password(password):
                return user
        except User.DoesNotExist:
            return None

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

基本上,它是被传递一个关键字“用户名”,但它接受“电子邮件”代替。因此,它引发了一个在django的contrib.auth.authentificate中捕获的异常,并且用户无法登录。我用“电子邮件”代替“用户名”来解决这个问题。

票数 0
EN

Stack Overflow用户

发布于 2014-02-14 12:09:18

Django rest框架支持不同的身份验证方法。不确定/api-auth/是什么意思。在这个框架中没有这样的标准url。请检查文档,看看哪些认证方法是可能的,以及如何进行认证。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21776453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档