我已经设置了django-rest-framework及其基本用户/组api,如下所述:http://www.django-rest-framework.org/。虽然我可以通过api看到用户和组,但我无法登录。有/ api-auth /登录页面,每当我插入un& passwd并提交它只是重定向到同一页面,没有任何renderred消息。我想知道我错过了什么。如何“登录”API。
答案 0 :(得分:1)
Django rest框架支持不同的身份验证方法。不确定你的意思/ api-auth /。这个框架中没有这样的标准网址。请检查documentation以查看可能的身份验证方法以及操作方法。
答案 1 :(得分:0)
这是由我使用自定义身份验证后端引起的:
# 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捕获,用户无法登录。我通过用“email”代替“username”来解决它。