如何将Yii与Wordpress /数字访问通道集成

时间:2011-12-13 22:10:09

标签: php authentication yii

我正在构建一个小型网络应用程序,以便在现有的Wordpress会员网站中使用。

目前,所有内容都使用Digital Access Pass进行保护,后者处理用户身份验证和内容保护。

我正在考虑使用Yii,并将其安装到Wordpress网站的子目录中。

我的计划是采用这种布局:

www.site.com(wordpress博客)

www.site.com/members(受数字访问通行证会员资格解决方案保护的内容,在Wordpress中设置)

www.site.com/members/app(yii文件夹 - 受DAP保护,但未在Wordpress中设置)

我不想进行完全集成,因为我使用了大量的Ajax,看起来它看起来不像我见过的例子。

我想要的是使用DAP来保护页面并处理身份验证,并将登录的用户ID传递给Yii,这样我就可以将其用作存储用户首选项,用户数据等的密钥。

DAP的工作方式是您只需将以下代码插入到要保护的任何页面中,然后就可以访问包含我需要的信息的用户对象。

<?php
    include_once "../dap/dap-config.php";
    $user = null;

if( !Dap_Session::isLoggedIn() ) { 
    //send viewer to login page
    header("Location:".SITE_URL_DAP.Dap_Config::get("LOGIN_URL"));
    exit;
}
else if( Dap_Session::isLoggedIn() ) { 
    //get userid
    $session = Dap_Session::getSession();
    $user = $session->getUser();
    $user = Dap_User::loadUserById($user->getId()); //reload User object
    if(!isset($user)) {
        //send viewer to login page
        header("Location:".SITE_URL_DAP.Dap_Config::get("LOGIN_URL"));
        exit;
    } else {
        $userProducts = Dap_UsersProducts::loadProducts($user->getId());
    }
}
?>

我如何在Yii中实现这个目标?

1 个答案:

答案 0 :(得分:0)

首先来看看Yii Filters

您应该能够将代码放入过滤器中,然后让它运行(很像built-in Access Control Filter

然后,如果您要真正构建类似于Yii的应用程序,您可能希望将DapUser包装在CUserIdentity类中,并使其与CWebUser对象一起使用。这需要一些工作,但是你真的可以轻松访问所有Yii对象中的用户信息。

祝你好运!