gpt4 book ai didi

python - ajax for/api-auth/login 时 djangorestfull 出现 CSRF 错误

转载 作者:太空宇宙 更新时间:2023-11-03 16:42:26 24 4
gpt4 key购买 nike

我在使用 djangorestfull 的 Web 项目的服务器端。我们的 UI 团队在端口 3000 上使用 gulp 运行 UI,而 Django 服务器在端口 8000 上运行。对于登录,我们使用 ajax 的 /api-auth/login url。 /api-auth/login 中选项方法的答案包含 csrftoken 和一个带有 CSRF 的表单但 post 方法(包含用户名和密码)错误。我如何检查这个问题的根源?是在服务器端还是 token 不会用 post 方法发送?

这是我的setting.py:

REQUIRED_APPS = [
'django_admin_bootstrapped',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_extensions',
'rest_framework',
]

MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
)

REST_FRAMEWORK = {
# Use Django's standard `django.contrib.auth` permissions,
# or allow read-only access for unauthenticated users.
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly',
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.TokenAuthentication',
]
}

urls.py:

urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'', include('User.urls', namespace='User')),
url(r'^schedule/', include('Schedule.urls', namespace='Schedule')),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
]

最佳答案

问题似乎来自 UI 团队。他们很可能没有在 POST 请求中包含 CSRF token 。请确认这一点。以下是 Django 中有关如何添加 token 的一些文档。 https://docs.djangoproject.com/en/1.9/ref/csrf/#ajax

关于python - ajax for/api-auth/login 时 djangorestfull 出现 CSRF 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36678192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com