나는 SSO (Single Sign On)와 관련하여 이와 비슷한 질문을했지만, 하위 도메인에서만 작동하지만 하위 서버는 사용하지 않고 같은 서버에서 다른 Yii 응용 프로그램을 사용하고 있음을 깨달았습니다. 한 도메인 아래동일한 서버에있는 두 개의 Yii 앱에서 사용자를 인증하는 방법은 무엇입니까?
나는 www.mydomain.com/app1과 www.mydomain.com/app2이
이 두 응용 프로그램은 동일한 데이터베이스를 사용하여 로깅에 대해 동일한 테이블을 사용합니다.
나는 일이 원하는 것은는 :
계정은 두 응용 프로그램
- 사용자에 대해 동일합니다 app2 (또는 app1. 문제가되지 않습니다.)
- 사용자가 로그인되어 있으며 홈페이지로 연결됩니다.
- 사용자가 app2 (또는 app2에서 온 경우 app1)로 리디렉션되는 메뉴에서 링크를 클릭합니다.
- 사용자는 이미 로그인되어 있고 계정의 홈 페이지로 리디렉션되므로 app2로 리디렉션되고 로그인을 건너 뜁니다.
- 사용자가 메뉴에서 로그 아웃 링크를 클릭합니다.
- 사용자가 두 응용 프로그램에서 모두 로그 아웃됩니다.
발생하지 무엇
(4). 사용자는 APP1로 리디렉션됩니다하지만 여전히 로그인하라는 메시지가 나타납니다 그때 APP1 & APP2에서 쿠키 및 세션을보고 확인
와 내가는 config 폴더에 모두 main.php에 대해 다음 않았다.
// 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>',
),
),
나는 1 주일 동안이 일에 매달 렸고 마감일이 곧 다가오고 있기 때문에 필요한 도움을 얻을 시간이 다가왔다.
편집 이것은 CDbHttpSession을 사용하여 세션을 시작하는 구성 파일 main.php입니다.
'sessionName'=>'app',
'class'=>'CDbHttpSession',
'autoCreateSessionTable'=> false,
'connectionID'=>'db',
'sessionTableName'=>'YiiSession',
'useTransParentSessionID' =>($_POST['PHPSESSID']) ? true: false,
'autoStart' => 'false',
'cookieMode' => 'only',
'timeout'=> 300
),
지금 작품에서 로그인 및 세션이 데이터베이스에 저장되는하지만 여전히 두 응용 프로그램에 로그인 아니에요 : 지금 YiiSession라는 데이터베이스 테이블에 세션을 저장하고있다. 두 응용 프로그램 모두이 동일한 구성을 갖습니다.
나는 항상 최고 수준에 배치하는 방법에 대해 읽었습니다. 그 이유는 무엇입니까? 나는 구성에 대해 궁금합니다. 구성 배치에 대한 계층 구조가있는 것처럼 보이지만 그 이유를 알고 싶습니다! :) 또한 'id'는 무엇이든 될 수 있습니다. 맞습니까? –
또한 구성의 맨 위에 추가하기 위해 보낸 코드 행을 추가했는데 내 응용 프로그램을 실행하지도 않습니다. –
구성이 응용 프로그램 개체에 설정되었습니다. 그래서 당신이 Yii :: app() -> setId()에 전달 될 최고 수준의 "id"를주는 경우 등등. 잘못된 정보를 찾고 더 많은 정보를 제공 할 수 있는지 알 수 있습니까? – Blizz