我正在尝试使用dj-rest-auth登录/连接社交帐户。我使用邮差来测试api请求。我是根据dj-rest-auth文档安装的。在我从用户表中删除一个用户之前,我一直工作得很顺利。
我的测试过程步骤:
- dj-rest-auth/login [user 1]凭据)→得到正确的结果[user 1]
- delete [user 1] in DB
- dj-rest-auth/login [user 1 credential] ->用户未找到[401 unauthorize]
- dj-rest-auth/login [user 2]凭据)→user not found [401 unauthorize] (user 2 exists in table))
- 所有其他api get 401错误(user not found [401 unauthorize])
我需要为这种情况添加一些设置吗?我不知道删除的用户如何影响所有其他api
请告诉我。谢谢你。
在我删除(JWT_AUTH_COOKIE = 'auth')后解决。
我认为你需要在settings.py
中添加这些设置INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'rest_framework.authtoken', # this
'dj_rest_auth', # this
'myapp',
]
REST_USE_JWT = True # this (apply JWT auth)
JWT_AUTH_COOKIE = 'jwt-auth' # this
检查项目url .py
中的设置from django.contrib import admin
from django.urls import path,include
from django.urls import path
urlpatterns = [
path("", include("myapp.urls")),
path('admin/', admin.site.urls),
path('', include('dj_rest_auth.urls')), # this
]
如果仍然出现错误,添加
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'dj_rest_auth.jwt_auth.JWTCookieAuthentication',
)
}