Как интегрировать Yii с Wordpress / Digital Access Pass - PullRequest
0 голосов
/ 14 декабря 2011

Я создаю небольшое веб-приложение для существующего сайта членства в Wordpress.

На данный момент весь контент защищен с помощью Digital Access Pass, который выполняет аутентификацию пользователей и защиту контента.

Я подумываю использовать для этого Yii и установить его в подкаталог сайта Wordpress.

Мой план - иметь этот макет:

www.site.com (WordPress блог)

www.site.com / members (содержимое защищено с помощью решения для членства в Digital Access Pass, настроенного в Wordpress)

www.site.com / members / app (папка yii - защищена DAP, но не настроена в Wordpress)

Я не хочу делать полную интеграцию, так как я использую много Ajax, и это не похоже, что он будет работать слишком хорошо из примеров, которые я видел.

Что я хотел бы, так это использовать DAP для защиты страниц и обработки аутентификации, а также для передачи идентификатора пользователя, вошедшего в систему, в 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?

1 Ответ

0 голосов
/ 28 декабря 2011

Я бы начал с взгляда на Фильтры Yii

Вы должны иметь возможность поместить свой код в фильтр и затем запустить его (так же, как встроенный ).-in Access Control Filter )

И затем, если вы собираетесь построить свое приложение по-настоящему в стиле Yii, вы можете поработать над упаковкой DapUser в CUserIdentity класс и заставить его хорошо работать с объектом CWebUser.Это займет немного работы, но тогда у вас будет действительно легкий доступ к пользовательской информации во всех объектах Yii.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...