Как аутентифицировать пользователей из двух приложений Yii на одном сервере?

Я задал аналогичный вопрос об этом в прошлом в отношении Single Sign On (SSO), но я понял, что это работает только для субдоменов, но в моем случае я не использую субдомены, а просто разные приложения Yii на одном сервере под одним домен.

У меня есть www.mydomain.com/app1 и www.mydomain.com/app2

Оба приложения используют одну и ту же базу данных и используют одни и те же таблицы для входа в систему.

Что я хочу :

Учетные записи для обоих приложений одинаковы

  1. Пользователь подписывается на приложение2 (или приложение 1. Это не имеет значения)
  2. Пользователь вошел в систему и отправился на домашнюю страницу.
  3. Пользователь нажимает ссылку из меню, перенаправляющего их на app2 (или app1, если они пришли из приложения2)
  4. Пользователь перенаправляется в приложение2 и пропускает логин, так как он уже подписан и перенаправляется на домашнюю страницу учетной записи.
  5. Пользователь нажимает ссылку выхода из меню.
  6. Пользователь выходит из обоих приложений.

Что не происходит

(4). Пользователь перенаправляется в приложение 1, но по-прежнему предлагается выполнить вход.

Затем я проверил, чтобы просмотреть файлы cookie и сеанс в app1 и app2, и я сделал следующее для обоих main.php в папке config:

// application components 'components'=>array( 'user'=>array( // enable cookie-based authentication 'allowAutoLogin'=>true, 'class'=>'WebUser', ), 'session'=> array( 'timeout'=> 1440 ), 'partyroles'=>array( // enable cookie-based authentication 'class'=>'WebUser', ), // uncomment the following to enable URLs in path-format 'urlManager'=>array( 'urlFormat'=>'path', 'rules'=>array( '<controller:\w+>/<id:\d+>'=>'<controller>/view', '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', ), ), 

Я застрял на этом всю неделю, и, поскольку крайний срок приближается, я думаю, пришло время получить некоторую необходимую помощь!

EDIT Это мой файл конфигурации main.php, инициирующий сеансы с использованием CDbHttpSession. Теперь я храню сессии в таблице базы данных YiiSession:

  'sessionName'=>'app', 'class'=>'CDbHttpSession', 'autoCreateSessionTable'=> false, 'connectionID'=>'db', 'sessionTableName'=>'YiiSession', 'useTransParentSessionID' =>($_POST['PHPSESSID']) ? true: false, 'autoStart' => 'false', 'cookieMode' => 'only', 'timeout'=> 300 ), 

Вход в систему теперь выполняется, и сеансы хранятся в базе данных, но до сих пор не регистрируются в обоих приложениях. Оба приложения имеют такую ​​же конфигурацию.

Related of "Как аутентифицировать пользователей из двух приложений Yii на одном сервере?"