如何将Yii与Wordpress / Digital Access Pass集成


How to integrate Yii with Wordpress / Digital Access Pass

我正在构建一个小的web应用程序,位于现有的Wordpress会员网站。

目前,所有内容都使用数字访问通行证进行保护,该通行证处理用户身份验证和内容保护。

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

我的计划是有这样的布局:

www.site.com (wordpress blog)

www.site.com/members(内容受Digital Access Pass会员解决方案保护,在Wordpress中设置)

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

我不想做一个完整的集成,因为我使用了很多Ajax,从我看到的例子来看,它看起来不太好。

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

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

<?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中实现这个?

我先来看一下Yii Filters

你应该能够把你的代码放在过滤器,然后让它运行(很像内置的访问控制过滤器)

然后,如果你要构建你的应用程序真正像yii,你可能想工作包装DapUser在一个CUserIdentity类,使它与CWebUser对象很好地工作。这将需要一些工作,但这样您就可以真正轻松地访问所有Yii对象中的用户信息。

祝你好运!