【问题标题】:Cakephp sharing auth between two applicationsCakephp 在两个应用程序之间共享身份验证
【发布时间】:2011-02-16 21:01:30
【问题描述】:

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

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

【问题讨论】:

    标签: cakephp cakephp-1.2 authentication


    【解决方案1】:

    确保两个应用程序都配置为以相同的方式处理会话。换句话说,我们希望两个应用程序都从同一个 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>");
        }
    }
    

    【讨论】:

    • 当然!虽然有 $this->Session->write 吗?我在 cakephp 书中没有看到
    • 是的,有一个 $this->Session->write(),我猜 eSentrik 正在为其他应用程序使用 $_SESSION。
    猜你喜欢
    • 2011-05-01
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 2011-10-10
    • 2021-02-09
    • 1970-01-01
    相关资源
    最近更新 更多