I am trying to access *csrftoken* sent in response header through *Django 
Rest Framework API *to* Angular 8* , but unable to do that.The csrf token 
is visible in developer tools in Chrome.please help me to resolve this 
issue as i am trying this from 1 week. 



the above snippet shows the csrf token in Set-Cookie section.I want to 
access this value in angular code so that i can send it in request to call 
an api.

I have attached  Django Api  *settings.py *file.

Below is my angular code where i am trying to access the the headers from 
response.
*Login code which is calling django api and in response getting various 
headers.*

login(email: string, password: string) {
  
    this.email = email;
    return this.http.post<any>("http://127.0.0.1:8000/api/Login/";, { email, 
password },{ observe: 'response' })
      .pipe(tap((user) => {
       
        localStorage.setItem('currentUser', JSON.stringify(user));
        console.log(user);
        console.log("csrftoken:" + user.headers.get('csrftoken'));          
  // tring to access csrf using headers
        this.currentUserSubject.next(user);
        this.data.setLoggedIn(true);
        console.log("cookie data:"+this.Cookie.get('csrftoken'));          
     //trying to access using cookie
        return user;
        }));
  }

All other headers are accessible except  *Set-Cookie:csrftoken*   response 
header. can anybody please help me out here?Any help will be appreciated.







-- 
You received this message because you are subscribed to the Google Groups 
"Angular and AngularJS discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to angular+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/angular/a449e596-ac4b-4177-be9c-eb7a30d03214o%40googlegroups.com.
"""
Django settings for BookingWebsite project.

Generated by 'django-admin startproject' using Django 3.0.5.

For more information on this file, see
https://docs.djangoproject.com/en/3.0/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/3.0/ref/settings/
"""

import os

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'zlxvctw0ab1+6c79%o@c1#=##7-ro=pk+_35#eihyntl+)f+_0'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = []
CORS_ORIGIN_WHITELIST = [
    "https://localhost:44357";,
]

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'Booking.apps.BookingConfig',
    'rest_framework',
    'rest_framework.authtoken',
    'corsheaders',
    'multiselectfield',
   # 'simple_email_confirmation',
]

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

ROOT_URLCONF = 'BookingWebsite.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'BookingWebsite.wsgi.application'


# Database
# https://docs.djangoproject.com/en/3.0/ref/settings/#databases

# DATABASES = {
#     'default': {
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': os.path.join(BASE_DIR, 'MelexiaBookingDB.sqlite3'),
#     }
# }

DATABASES = {
    'default': {
        'ENGINE': 'djongo',
        'NAME': 'MelexiaBookingDB',
        'HOST':'localhost',
        'PORT':27017
    }
}

# Password validation
# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]


# Internationalization
# https://docs.djangoproject.com/en/3.0/topics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.0/howto/static-files/

STATIC_URL = '/static/'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'dhayakar.dhaya...@gmail.com'
EMAIL_HOST_PASSWORD = '9666511007'
EMAIL_PORT = 587

# REST_FRAMEWORK = {
#     'DEFAULT_AUTHENTICATION_CLASSES': (
#         'rest_framework.authentication.TokenAuthentication',
#     )
# }
# from Booking.models import PatientRegistration
# AUTH_USER_MODEL='PatientRegistration'

Reply via email to