正在寻找有关Django身份验证和Angular登录页面的帮助

正在寻找有关Django身份验证和Angular登录页面的帮助,django,angular,authentication,login,Django,Angular,Authentication,Login,我有一个angular登录页面,它向django服务器发送一个Ajax请求,该服务器在angular应用程序的一个单独端口上侦听,我可以登录我的用户,但在响应中没有返回会话cookie,客户端将其存储在angular应用程序中。以下是my backend settings.py对于特定于身份验证的内容的外观: MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middl

我有一个angular登录页面,它向django服务器发送一个Ajax请求,该服务器在angular应用程序的一个单独端口上侦听,我可以登录我的用户,但在响应中没有返回会话cookie,客户端将其存储在angular应用程序中。以下是my backend settings.py对于特定于身份验证的内容的外观:

MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',]

# Here are the session specific settings
SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies'
SESSION_COOKIE_HTTPONLY = True
SESSION_COOKIE_AGE = 1800 # The age of session cookies, in seconds
CORS_ORIGIN_ALLOW_ALL = True
下面是我的登录视图函数,它连接到我的登录路径:

@csrf_exempt
@require_POST
def login_view(request: HttpRequest):
    payload = request.body.decode()
    body = json.loads(payload)
    username = body['username']
    password = body['password']
    user = authenticate(request, username=username, password=password)
    if user is not None:
        login(request, user)# Log the user in
        return HttpResponse('Success')
    else:
        return HttpResponseBadRequest()
我尝试使用基于cookie/会话的身份验证,这样,如果用户在会话时间到期之前关闭页面并重新启动,它将引导他们返回登录页面,并且对于特定的输入选择字段,仅应根据用户返回某些选项,这需要通过会话身份验证来处理。我的设置文件中是否有不正确的内容

尝试将会话\u COOKIE\u SECURE和CSRF\u COOKIE\u SECURE设置为False,可能是因为您的请求不安全


你知道让django将csrf令牌传递到我的登录页面以防止csrf伪造的方法吗?尝试使用强制csrf。此外,我将研究将CSRF_COOKIE_HTTPONLY设置为True的原因,如前所述,这将强制您从隐藏的输入表单值检索csrftoken,否则您可以直接从COOKIE读取它。这两种方法如下所述: