2009-08-21 2 views
1

나는 사용자가 등록하고 로그인하거나 openid로 로그인 할 수있는 메인 사이트 example.com을 보유하고 있습니다. 로그인 한 사용자는 mysite.example.com과 같은 하위 도메인으로 자신의 사이트를 만들 수 있습니다. 모든 사용자는 여러 사이트를 가질 수 있습니다. 모든 사이트는 cakephp 앱입니다. 모든 케이크 앱에는 자체 ACL이 있습니다.여러 cakephp 응용 프로그램간에 권한 부여를 배포하는 방법은 무엇입니까?

사용자가 기본 사이트에 로그인하고 자신의 사이트에도 로그인하도록 권한을 배포하는 방법은 무엇입니까? 여기

답변

1

두 가지 주요 요구 사항 :

  1. 클라이언트 측 쿠키가 모든 응용 프로그램

    확인 클라이언트 측에서 CakePHP를 설정 한 쿠키를 유효해야합니다 (FireCookie이 좋다). domain 쿠키의 일부는 하위 도메인에 적용하기 위해 .example.com (www.example.com 아님)으로 읽어야합니다. 이 bootstrap.php에서 작동 할 수 있습니다 :

    ini_set('session.cookie_domain', '.example.com'); 
    
  2. 서버 측 세션 저장소가 공통 세션 스토리지를 설정하는 모든 응용 프로그램을 각 응용 프로그램에 대한 core.php에서

    에 의해 액세스 할 수 있어야합니다. 옵션은 다음과 같습니다.

    • php : 이것은 모든 응용 프로그램에서 동일해야하는 PHP 정의 세션 저장 디렉토리를 사용합니다.
    • database : 모든 응용 프로그램이 동일한 데이터베이스를 사용하는 경우이 옵션이 될 수 있습니다.
    • cake :이 기능을 사용하려면 각 응용 프로그램에 공통 /tmp 디렉토리를 정의해야합니다.
+0

내 생각은 여기 있습니다. ini_set ('session.cookie_domain', '.example.com') - Configure :: write ('Security.level', 'low'); 만 필요하다. 2. (서버 측)에 관해서는, 모든 응용 프로그램에 대한 공통 세션 저장소를 활성화한다는 것은 응용 프로그램 수준에서 응용 프로그램에 대한 액세스를 제어해야하고 ACL을 망칠 수 있음을 의미합니다. 가장 좋은 방법은 응용 프로그램 용어에 따라 데이터베이스에 세션을 저장하고 지정된 사용자에게 속한 다른 응용 프로그램에 시스템을 통해 배포하는 것입니다. –

+0

1.3 및 2.x에 공통 세션을 사용할 수 있습니까? –

+0

가능해야합니다 ..'Config/Schema/sessions.php'는 두 버전에서 동일하게 보입니다. – deizel

관련 문제