2015-01-11 2 views
3

У меня есть область участника на моем веб-сайте на моем порту 80 по умолчанию, есть приложение-пользователь, работающий на порту 8080 моего веб-сайта под названием UserPort, когда пользователь переходит к UserPort с новым пустым (имеет нет имени пользователя внутри). Есть ли в любом случае для меня один и тот же сеанс с порта 80 на порт 8080?Сохранение сеанса при переключении с разных портов

EDIT: Хорошо, так что я был передан на следующий ответ для моей проблемы = Same Session ID on Same IP Address but Different Ports но код не объяснен хорошо, я поставил первый сегмент кода с портом 110 на страницу области моего члена и поставить второй сегмент на мою страницу UserPort?

+2

И вы начинаете сеанс на странице UserPort? – StackOverQuestions

+0

Да, я с этим кодом: 'session_start(); ' – geotsak

+1

Являются ли приложения (на порту 80 e 8080) запущенными на одном сервере? Что такое сервер приложений? – felipecrp

ответ

0

Поскольку существует два разных сервера, вы не можете легко (как в готовом) поделиться сеансом. Тем не менее, вы можете сделать запрос от своего приложения apache к вашему торнадовому приложению, чтобы «подготовить» сеанс для пользователя. Затем, когда пользователь перенаправляется на UserPort, она должна получить что-то, чтобы идентифицировать себя. Из-за этого: Are HTTP cookies port specific? небезопасно использовать файлы cookie, поэтому одноразовый токен в URL-адресе, вероятно, сделает.

Чтобы поместить его в очень упрощенном код pseude:

// apache 
$token = createRandomString(); 
call($tornadoAppUrl, $userData, $token); 
$link = createUserPortLink($tornadoAppUrl, $token); 
echo "<a href='$link'>go to UserPort</a>" 

//tornado UserPort 
$token = 
$userData = getUserSession($token); 
... act accordingly 

Надеется, что это ясно.