是否有一种简单的方法可以在同一个域上的两个cakephp应用程序之间共享登录信息?
基本上,MainApp有一个完整的用户管理套件,我只想让SecondaryApp知道访问者是否登录。
答案 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>");
}
}