Сессия потеряна после первого запроса OAuth в Twitter - PullRequest
2 голосов
/ 10 марта 2011

Используя ASP.NET MVC, сеансы хранятся в базе данных SQL (никогда не было проблем с ними, и они не использовали веб-ферму).Использование также библиотеки Twitterizer2.Использование Firefox.

  1. Первый запрос, экземпляры браузера не открываются.Экземпляр браузера запущен.
  2. У нас есть простая форма «Опубликовать в твиттере» и нажать кнопку «Отправить».
  3. При нажатии кнопки «Поделиться» мы сохраняем сообщение в сеансе и перенаправляем на проверку подлинности OAuth в Твиттере (при отправке через POST).).
  4. Мы аутентифицируем OK и возвращаемся к нашему действию, и перед публикацией в Twitter мы проверяем, сохранено ли сообщение в сеансе (а не! - оно теряется сразу после перенаправления Twitter)
  5. Когда мы пытаемся использовать другой ресурс обмена сообщениями, он теперь работает (Session).
  6. Мы решили это с помощью Cookie, но у нас нет подсказки, когда мы потеряли Session (первый раз) после возвращения из Twitter.

Любой деас?

Ответы [ 2 ]

0 голосов
/ 04 октября 2011

проверьте, что домен запроса и обратного вызова совпадает

, т.е. вы делаете запрос на получение oauth от localhost и обратного вызова на 127.0.0.1

0 голосов
/ 13 марта 2011

Я хотел бы спросить, как вы поддерживали сессию без cookie в первый раз?

Я думаю, что проблема может быть в процессе установки файлов cookie. Я также столкнулся с подобной проблемой до пары недель.

Проблема была в том, что когда я делаю запрос на токен REQUEST, этот запрос является внутренним HTTP-запросом (не через браузер пользователя). В ответ на этот запрос я получаю токен REQUEST и затем устанавливаю его в сеансе пользователя.

$token = getRequestToken();
$_SESSION['token'] = $token;

Однако, если пользователь впервые зашел на мой сайт без сеанса, у него нет файла cookie сеанса для отправки мне. Внутренне на веб-сайте я создал для него сеанс и сохранил в нем токен, но затем вместо отправки ему ответа с включенными заголовками файлов cookie, чтобы он «принял» мой сеанс, я делаю перенаправление на конечную точку авторизации поставщика. Таким образом, пользователь не получает файл cookie сеанса, и когда он возвращается обратно, он как новый пользователь для моего сайта.

Это поток процесса, который произошел со мной:

  1. создать сеанс пользователя в базе данных
  2. setcookie (usersession) // добавляем заголовки к возможному ответу
  3. получить токен запроса
  4. установить токен в сеансе
  5. перенаправить пользователя (пользователь не получает сессионный cookie)
  6. пользователь заходит в точку авторизации
  7. пользователь возвращается, но он для меня новый пользователь

Мне было бы интересно узнать, была ли у вас похожая проблема :) С наилучшими пожеланиями

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