2016-12-20 3 views
0

В настоящее время я пытаюсь связать API входа с моим угловым JS-приложением для аутентификации.Угловое приложение JS с использованием REST API

Это моя текущая функция Логин:

var $promise = $http.post(API + '/login', { 
     username: name, 
     password: pw 
    }); 

    $promise.then(function(msg){ 
    if(msg.data.success == true){ 
     resolve('Login success.'); 
    }else{ 
     reject('Login Failed.'); 
    } 
    }); 

Это успешно возвращаются в случае успеха, однако, когда я пытаюсь получить настройки от пользователя с помощью API я получаю сообщение об ошибке для unauthorization.

Это мой запрос GET:

$http({ 
     method: 'GET', 
     url: API + '/account/settings', 
     withCredentials: true 
    }).then(function successCallback(response) { 
     // SUCCESS 
    }, function errorCallback(response) { 
     // ERROR 
    }); 

Это действительно, действительно озадачивает меня. Я могу использовать Postman для вызова API для входа в систему, а затем GET из настроек, но не могу на всю жизнь работать.

Это мой ответ заголовки из запроса ВХОДА:

Access-Control-Allow-Credentials:true 
Access-Control-Allow-Origin:http://localhost:8100 
Connection:keep-alive 
Content-Length:171 
Content-Type:application/json; charset=utf-8 
Date:Tue, 20 Dec 2016 21:30:05 GMT 
ETag:W/"ab-vCrnhzn26fE4borN6cmpAw" 
set-cookie:connect.sid=s%3A1EF4OfHQ2uYb750QvccZB4pnNCyTsAfd.ISmVn3vE5jXjEwmLbtsQK4O339%2Fw74K3Y613f4%2FcTKE; Path=/; HttpOnly 
Vary:Origin, X-HTTP-Method-Override, Accept-Encoding 
+0

Когда вы возвращаете результат из этого API входа, вы видите какой-либо заголовок авторизации, добавляемый в ответ, и если вы добавили его в следующий заголовок запроса? – Yaser

+0

Эй, @YaserAdelMehraban, я получаю ответ от тела назад с успехом, а затем возвращаю обратно в заголовки ответов: –

+0

HTTP/1.1 200 OK Access-Control-Allow-Origin: http: // localhost: 8100 Vary: Origin, X-HTTP-метод-Override, Accept-Encoding Access-Control-Allow-Credentials: true Content-Type: application/json; кодировка = UTF-8 Content-Length: 171 ETag: Вт/"AB-vCrnhzn26fE4borN6cmpAw" Set-Cookie: connect.sid =% s 3AEtJZCOqfGu4UqZnLGDIfIZXjAYKUQx12.EqyopERh6bEgIawPrtY5Jwqe7HqB5FFBgefqUy% 2BSsrk; Path = /; HttpOnly Дата: Вт, 20 Дек 2016 21:20:26 GMT Связь: keep-alive –

ответ

1

Я прослежено сервер, который вы используете, и нашел проект под названием ngFrame, который потребляет почти все API, в Drywall, есть образцы аутентификации также есть.

Существует функция называется setAuthHeader в источнике вы посмотрите на может:

function setAuthHeader(user) { 
    $http.defaults.headers.common['Authorization'] = user.authHeader 
} 

Использование которая передается здесь приходит из ответа пост для входа:

$http.post('/api/login', user).success(function(user) {}); 

Адрес GitHub.

+0

Эй, в настоящее время я использую это: https://github.com/arthurkao/angular-drywall, который является угловой версией Drywall, которая настроена и работает. Так вы говорите, что мой логин ошибочен? или ответ назад не прав? –

+0

Yap, если вы посмотрите на security.js, нигде не устанавливается заголовок аутентификации. Даже не в перехватчике, который они используют для повторного несанкционированного сервера – Yaser

+0

Черт, так что я ничего не могу изменить, чтобы работать? –

Смежные вопросы