Я потерял полтора дня, пытаясь понять, почему Yii удаляет все данные сеанса после того, как я перейду на страницу OAuth Twitter и вернусь к моему перенаправлению.Yii проигрывает сеанс после перенаправления OAuth
Вот главный SiteController, куда я иду в Twitter. Здесь я пытаюсь сохранить значения oauth_token и token_secret, поэтому я могу использовать их в контроллере перенаправления.
function actionTwitter()
{
$consumerKey = "";
$consumerSecret = "";
$connection = new TwitterOAuth($consumerKey, $consumerSecret);
$request_token = $connection->oauth("oauth/request_token", array("oauth_callback" => "http://127.0.0.1/yii/?r=redirect&type=twitter"));
$oauth_token=$request_token['oauth_token'];
$token_secret=$request_token['oauth_token_secret'];
Yii::app()->session['token'] = $oauth_token; // This doesn't save!!
Yii::app()->session['token_secret'] = $token_secret; // This does not save!!
$url = $connection->url("oauth/authorize", array("oauth_token" => $oauth_token));
$this->redirect($url);
exit(); // some people have said I need to exit the session first after I redirect, but it doesn't help at all.
}
Вот мой RedirectController, который представляет собой отдельный контроллер, а не в главном SiteController:
public function actionIndex()
{
$type = $_GET['type'];
if ($type == "twitter")
{
$token = Yii::app()->session['token'];
print($token);
}
}
У меня также есть набор сессии Автозапуск правда в моем файле конфигурации.
Мысли о том, почему он не работает/материал, который я прочитал о:
- сайт Twitter является HTTPS, и я на локальном хосте (не HTTPS есть). По какой-то причине я забыл, что это приведет к потере данных при перенаправлении. Если это так, как я могу исправить это, не используя HTTPS?
- Когда я создаю новые CHttpCookies, они тоже не сохраняются, я не могу получить значение
- Я попытался использовать Yii :: app() -> user-> setState, который тоже не работает.