settings配置:
REST_FRAMEWORK = {
# 异常处理
'EXCEPTION_HANDLER': 'meiduo_mall.utils.exceptions.exception_handler',
'DEFAULT_AUTHENTICATION_CLASSES': (
# 配置登录鉴权方式
'rest_framework_jwt.authentication.JSONWebTokenAuthentication' # 先进行token认证
'rest_framework.authentication.SessionAuthentication', # 次要进行session认证
'rest_framework.authentication.BasicAuthentication', # 最后进行基本认证
),
}
报错如下:
ImportError: Could not import ‘rest_framework_jwt.authentication.JSONWebTokenAuthenticationrest_framework.authentication.SessionAuthentication’ for API setting ‘DEFAULT_AUTHENTICATION_CLASSES’. ModuleNotFoundError: No module named ‘rest_framework_jwt’.
修改成:
REST_FRAMEWORK = {
# 异常处理
'EXCEPTION_HANDLER': 'meiduo_mall.utils.exceptions.exception_handler',
'DEFAULT_AUTHENTICATION_CLASSES': (
# 配置登录鉴权方式
'rest_framework_simplejwt.authentication.JWTAuthentication', # 先进行token认证
'rest_framework.authentication.SessionAuthentication', # 次要进行session认证
'rest_framework.authentication.BasicAuthentication', # 最后进行基本认证
),
}
原因如下:
'rest_framework_jwt.authentication.JSONWebTokenAuthentication'
这是djangorestframework-jwt提供,不再维护。
只需卸载它,而是使用 'rest_framework_simplejwt.authentication.JWTAuthentication'
来自djangorestframework-simplejwt
- 安装djangorestframework-simplejwt:
pip install djangorestframework-simplejwt
- 你
'DEFAULT_AUTHENTICATION_CLASSES'
应该是这样的:'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.authentication.SessionAuthentication', 'rest_framework.authentication.BasicAuthentication', 'rest_framework_simplejwt.authentication.JWTAuthentication', ),
- 在您的根
urls.py
文件(或任何其他 url 配置)中,包含 Simple JWTTokenObtainPairView
和TokenRefreshView
视图的路由:
from rest_framework_simplejwt.views import (
TokenObtainPairView,
TokenRefreshView,
)
urlpatterns = [
...
path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
...
]
更多信息查看官方文档
© 版权声明
THE END
暂无评论内容