django - 登录后 Django Rest Framework 要求身份验证
问题描述
我能够通过令牌身份验证成功登录。但是,当获取另一个 API 时,它会要求身份验证。
{"detail":"Authentication credentials were not provided."}
视图.py
class CreateQuiz(generics.ListCreateAPIView):
serializer_class = QuizSerializer
authentication_classes = (TokenAuthentication,)
permission_classes =(IsAuthenticated,)
def get_queryset(self):
return somequeryset
设置.py
REST_FRAMEWORK ={
'DEFAULT_AUTHENTICATION_CLASSES': (
'knox.auth.TokenAuthentication',
),
}
from datetime import timedelta
REST_KNOX ={
'USER_SERIALZIER' :'api.serializer.UserSerializer',
'TOKEN_TTL': timedelta(hours=24*7),
}
当我在邮递员上测试http://127.0.0.0.1:8000/apis/v1/login/?username=xxxx.com&password=xxxx时,我成功通过身份验证并返回
{
"expiry": "2021-05-18T19:46:33.841420Z",
"token": "f07a35897b070eabfcf1439c4495b8cede5fd9908135692e2c516127a926f2ab"
}
解决方案
您必须在所有未来请求的标头中添加令牌。
Authorization: Token <your token>
此外,您应该使用 POST 而不是 GET,因为密码将在 URL 中可见。
推荐阅读
- python - 从 Excel 中导入 Python 矩阵时出现问题,如果 elif 语句可能存在一些问题
- flutter - 像primefaces中的树表一样在颤动中创建树表
- swagger - Quarkus + Swagger UI + Keycloak
- sql-server - 为组织的非工作时间创建临时表
- python - 如何使用 Python 迭代时间跨度并计算数据框中的一些值?
- r - 如何仅为面板数据中第一次观察具有正值的人替换缺失值?
- python - 如何找到列表的绝对差异并在最大化优化模型 guobipy 中使用这些值?
- javascript - 当您不能只调用该方法时,如何在 javascript 中调用对本地文件的回调查询?
- java - GCM模式下的AES密码,Java中的空字节IV
- python - 将字符串视为 Python 中的 f 字符串