LINUX.ORG.RU

Проблема с cookie

 , ,


0

1

Всем привет. Поднимал я тут уже ранее вопрос о то как с помощью cookie делать авторизацию в приложении где angular висит отдельно от сервера на котором api и общается с api . Начал реализацию этого механизма посредством cookie и вот столкнулся с проблемой такой, со страницы логина отправляю логин и пароль, на стороне сервера делаю необходимые проверки и в случае когда все проверки проходят делаю вот что

$response->headers->setCookie(new Cookie('user', 'TestCookie'));

На стороне ангулара в инспекторе смотрю что потом приходит с сервера

Access-Control-Allow-Headers:origin, x-requested-with, content-type
Access-Control-Allow-Methods:OPTIONS, POST, GET, PUT, DELETE
Access-Control-Allow-Origin:*
Cache-Control:no-cache
Connection:Keep-Alive
Content-Encoding:gzip
Content-Type:text/html; charset=UTF-8
Date:Wed, 07 Jan 2015 10:33:53 GMT
Keep-Alive:timeout=5, max=99
Server:Apache/2.4.7 (Ubuntu)
Set-Cookie:user=TestCookie; path=/; httponly
Transfer-Encoding:chunked
Vary:Accept-Encoding
X-Debug-Token:253bbd
X-Debug-Token-Link:/app_dev.php/_profiler/253bbd
X-Powered-By:PHP/5.5.9-1ubuntu4.5

Вроде все нормально и сервер присвоил cookie, но далее переходя на другую страницу с которой отправляется запрос на ту же api я смотрю в инспекторе что cookie не дописываются к запросу, в инспекторе смотрю на request

GET /app_dev.php/category HTTP/1.1
Host: api.loc
Connection: keep-alive
Accept: application/json, text/plain, */*
Origin: http://project.loc
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
Referer: http://project.loc/add
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,ru;q=0.6,uk;q=0.4

И как видно что у запроса не приписаны cookie но они должны там быть. Так как это запрос к серверу с того же ангуларовского приложения после присвоения cookie. Не может ли быть виной эта строка кода в приложении ?

.config(['$httpProvider', function($httpProvider) {
    $httpProvider.defaults.useXDomain = true;
    delete $httpProvider.defaults.headers.common['X-Requested-With'];
}
]);

Просто не знаю в какую сторону копать в поисках причины.


Ответ на: комментарий от zz
config(['$httpProvider', function($httpProvider) {
    $httpProvider.defaults.useXDomain = true;
    delete $httpProvider.defaults.headers.common['X-Requested-With'];
    $httpProvider.withCredentials = true;
}
]);

Добавил это все ровно не работает. Сервер cookie отправил, а вот js клиент почему-то дальше их не принял.

Berdin
() автор топика
Ответ на: комментарий от zz

Все внес пару правок в htaccess и все работает.

Berdin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.