我正在构建一个小型网络应用程序,以便在现有的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中实现这个目标?
答案 0 :(得分:0)
首先来看看Yii Filters
您应该能够将代码放入过滤器中,然后让它运行(很像built-in Access Control Filter)
然后,如果您要真正构建类似于Yii的应用程序,您可能希望将DapUser包装在CUserIdentity类中,并使其与CWebUser对象一起使用。这需要一些工作,但是你真的可以轻松访问所有Yii对象中的用户信息。
祝你好运!