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

时间:2011-02-16 21:01:31

标签: cakephp cakephp-1.2 authentication

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

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

1 个答案:

答案 0 :(得分: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

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

$_SESSION['isLoggedIn'] = true;

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

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