django-rest-framework - django rest 中的令牌身份验证失败
问题描述
我可以创建用户模型。但是即使存在具有给定凭据的此类用户,身份验证也总是失败
models.py 的用户创建方法为
@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_auth_token(sender, instance=None, created=False, **kwargs):
if created:
Token.objects.create(user=instance)
views.py 的登录/身份验证方法为
class ObtainAuthToken(APIView):
@csrf_exempt
def post(self, request):
user = authenticate(
username=request.data['username'],
password=request.data['password'])
if user:
token, created = Token.objects.get_or_create(user=user)
return Response({'token': token.key, 'user': UserSerializer(user).data})
return Response('Invalid username or passwordee', status=status.HTTP_400_BAD_REQUEST)
在 settings.py
AUTH_USER_MODEL = 'account.User'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
settings.py 在这里
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
),
}
这段代码有什么问题?
解决方案
推荐阅读
- visual-studio - ASP.NET Core Web API 控制器不返回正确的数据
- javascript - 使用多个 Bootstrap 折叠元素时定位特定的数据目标按钮?
- linq - LINQ 查询总是返回 Null
- python - 导入带有引号的奇怪格式的 csv
- flutter - Flutter`预期有1个位置参数,但找到了0个。`
- php - PHP SQL 检查表单输入是否存在于其他表中,然后继续
- javascript - 按值对javascript对象数组进行排序
- reactjs - Office 加载项中的文件输入?
- python-3.x - “[Errno 38] Function not implemented:”在 Azure 机器学习上安装 Tensorflow 对象检测 API 时发生
- acumatica - 对于 acumatica,如何将 FormTab 中两个网格列的值相加并将该值分配给 FormTabs 区域上方的字段?