首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >/api-auth/登录时djangorestfull上的CSRF错误

/api-auth/登录时djangorestfull上的CSRF错误
EN

Stack Overflow用户
提问于 2016-04-17 15:02:30
回答 1查看 68关注 0票数 1

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

这是我的setting.py

代码语言:javascript
复制
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

代码语言:javascript
复制
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')),
]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-17 21:09:55

问题似乎来自UI团队。机会很大,它们没有将CSRF令牌包含在POST请求中。请确认一下。以下是Django关于如何添加令牌的一些文档。https://docs.djangoproject.com/en/1.9/ref/csrf/#ajax

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36678192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档