Печенье и JSONP - PullRequest
       33

Печенье и JSONP

2 голосов
/ 19 ноября 2010

У меня проблема с JSONP и файлами cookie, отправляемыми браузером.

На самом деле у меня есть два сайта: сервер1 и сервер2. Я хочу, чтобы мои пользователи проходили аутентификацию на сервере server1, и когда они переходят на сервер server2, я хотел бы проверить (с помощью вызова Javascript JSONP для server1), аутентифицированы ли они.

Проверка подлинности на сервере server1 осуществляется с помощью файлов cookie, и я подумал, что при выполнении моего вызова на сервер server1 через JSONP браузер отправляет файлы cookie, а затем выполняется проверка подлинности. Но похоже, что браузер (FF) не отправляет куки на server1 при отправке запроса через JSONP.

Кто-нибудь знает, отправляют ли браузеры файлы cookie при запросе с JSONP? Если это не так, что было бы лучшим решением для проверки в Javascript, если пользователь прошел проверку подлинности на сервере server1 с сервера server2?

Спасибо за ваши ответы,

Vincent

Ответы [ 2 ]

1 голос
/ 12 июля 2011

Это зависит от доменных имен этих серверов. Если они равны server1.example.com и server2.example.com, вы можете установить, что куки будут зависеть от домена .example.com. Затем файлы cookie будут отправлены на оба сервера.

Если вы не можете сделать это, как я написал, вам придется сделать какое-то решение. Например, по iFrame.

0 голосов
/ 24 января 2012

Я согласен с тем, что сказал @Jakub, и для дальнейшего объяснения того, что может происходить в вашем случае. Я предполагаю, что у вас есть домены, такие как server1.com и server2.com

Таким образом, если вы устанавливаете cookie из приложения, которое находится на server2.com, и делаете запрос JSONP для приложения, которое находится на server1.com от server1.com, оно будет отправлять куки, если они были установлены ранее с server1.com. В противном случае он не будет отправлять файлы cookie, установленные сервером server2.com. На самом деле браузер делает запрос к server1.com из приложения server2.com, которое точно так же, как server2.com, запрашивает файл JavaScript с CDN или любого другого сервера. Следовательно, он не будет отправлять файлы cookie server2.com, иначе это станет большой проблемой безопасности для браузера.

Надеюсь, это имеет смысл.

...