我已经设置了django-rest框架及其基本用户/组api,如下所述:http://www.django-rest-framework.org/。虽然我可以通过api看到用户和组,但我无法登录。这里有/auth/登录页面,每当我插入un & passwd并提交它时,只需重定向到同一个页面,而不需要任何渲染消息。我想知道我错过了什么。我如何“登录”到API。
发布于 2014-02-14 12:13:27
这是因为我使用了一个定制的auth后端:
# 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中捕获的异常,并且用户无法登录。我用“电子邮件”代替“用户名”来解决这个问题。
发布于 2014-02-14 12:09:18
Django rest框架支持不同的身份验证方法。不确定/api-auth/是什么意思。在这个框架中没有这样的标准url。请检查文档,看看哪些认证方法是可能的,以及如何进行认证。
https://stackoverflow.com/questions/21776453
复制相似问题