Cakephp在两个应用程序之间共享auth

Dav*_*ave 2 authentication cakephp cakephp-1.2

有没有一种简单的方法可以在同一个域上的两个cakephp应用程序之间共享登录信息?

基本上,MainApp有一个完整的用户管理套件,我只想让SecondaryApp知道访问者是否登录.

eSe*_*rik 5

确保将两个应用程序配置为以相同方式处理会话.换句话说,我们希望两个应用程序都从同一个cookie中读取,我们需要两个应用程序在该cookie的相同位置查找.

//app\config\core.php for both apps
Configure::write('Session.save', 'php'); //cookie path
Configure::write('Session.cookie', 'app_name'); //cookie name
Run Code Online (Sandbox Code Playgroud)

在MainApp中,无论您在何处进行身份验证,都要设置一个指示用户已登录的会话变量.

$_SESSION['isLoggedIn'] = true;
Run Code Online (Sandbox Code Playgroud)

然后在SecondaryApp中,您可以读取会话变量并相应地执行操作.我想通常你会要求用户登录.

function beforefilter(){
    if(!$this->Session->read('isLoggedIn')) {
        die("Please <a href='/users/login'>Login</a>");
    }
}
Run Code Online (Sandbox Code Playgroud)