Use meta refresh instead of 302 redirect on new session

Attempting to fix missing session cookie in some versions of Android webview and Chrome.
This may or may not be of any use, but why not try?

See https://bugs.chromium.org/p/chromium/issues/detail?id=150066
This commit is contained in:
Kijin Sung 2017-02-16 11:53:20 +09:00
parent 5afa29484c
commit cbae2c374e
2 changed files with 14 additions and 2 deletions

View file

@ -949,8 +949,18 @@ class ModuleHandler extends Handler
{
if($_SESSION['XE_VALIDATOR_RETURN_URL'])
{
header('location: ' . $_SESSION['XE_VALIDATOR_RETURN_URL']);
return;
if ($_SESSION['is_new_session'])
{
ob_end_clean();
echo sprintf('<html><head><meta charset="UTF-8" /><meta http-equiv="refresh" content="0; url=%s" /></head><body></body></html>', escape($_SESSION['XE_VALIDATOR_RETURN_URL']));
return;
}
else
{
ob_end_clean();
header('location: ' . $_SESSION['XE_VALIDATOR_RETURN_URL']);
return;
}
}
// If error occurred, handle it

View file

@ -214,6 +214,7 @@ class Session
}
else
{
$_SESSION['is_new_session'] = false;
return true;
}
}
@ -374,6 +375,7 @@ class Session
$_SESSION['RHYMIX']['secret'] = Security::getRandom(32, 'alnum');
$_SESSION['RHYMIX']['tokens'] = array();
$_SESSION['is_webview'] = self::_isBuggyUserAgent();
$_SESSION['is_new_session'] = true;
$_SESSION['is_logged'] = false;
$_SESSION['is_admin'] = '';