Django request.user становится пустым после входа в систему с помощью angularjs - PullRequest
0 голосов
/ 25 октября 2018

У меня приложение Django и angularjs работает отдельно.Я могу войти в систему с помощью angularjs.однако после входа в систему request.user в django выдает пустые данные.

    MIDDLEWARE_CLASSES = [
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.security.SecurityMiddleware',
    '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',
]

CORS_ALLOW_CREDENTIALS = True

CORS_ORIGIN_ALLOW_ALL = True

Код входа:

@csrf_exempt
def login_for_new_design(request, *args, **kwargs):

if request.method == "POST":
    temp=json.loads(request.body)

    username = temp.get("username", None)
    password = temp.get("password", None)
    user = authenticate(username=username, password=password)
    response_data = {}
    if user:
        login(request, user)
        response_data['success'] = True
        response_data['message'] = 'Login was succesfull!'
    else:  # invalid case
        response_data['success'] = True
        response_data['message'] = 'Login was Failure!'

response = HttpResponse(json.dumps(response_data));
response["Access-Control-Allow-Origin"] = "*"
response["Access-Control-Allow-Methods"] = "POST, GET, OPTIONS"
response["Access-Control-Max-Age"] = "1000"
response["Access-Control-Allow-Headers"] = "*"
return response

ajax метод:

$http({
method:'POST',
url:uri,
datatype:"json",
data:payload,
headers: {

    'Content-Type': undefined
},

}).then(function(result){
    console.log(result)
    localStorage.setItem("username", $scope.username); 
    $state.go('app.main', {showLeftnav: true});     
},function(error){
    console.log(error)
})

Выше двух методов работает нормально,Но когда я хочу проверить, вошел ли пользователь в систему или нет, используя метод ниже,

@csrf_exempt
def isAuthenticated_user(request):
    userdic = {};
    userdic['username'] = request.user.username
    print  userdic
    response = HttpResponse(json.dumps(userdic));
    response["Access-Control-Allow-Origin"] = "*"
    response["Access-Control-Allow-Methods"] = "POST, GET, OPTIONS"
    response["Access-Control-Max-Age"] = "1000"
    response["Access-Control-Allow-Headers"] = "*"
    return response


var csrftoken = $cookies.get('csrftoken')
authPromise = $http({
    'method': "POST",
    'url': "http://localhost:8000/isAuthenticated_user/",
     headers:{
        "X-CSRFToken": csrftoken,
         'Content-Type':  'application/x-www-form-urlencoded;charset=utf-8'
         // 'withCredentials':true
    },

})

request.user выдает пустые данные.

Пожалуйста, дайте мне знать, где я делаю неправильно.

1 Ответ

0 голосов
/ 25 октября 2018

try,

 user = self.request.query_params.get('username',None)
 print user

сообщите мне, если произошла какая-либо ошибка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...