Могу ли я использовать систему аутентификации Joomla, чтобы разрешить / запретить доступ к автономному скрипту? - PullRequest
0 голосов
/ 21 декабря 2009

Мы разработали несколько автономных php-скриптов и хотим ограничить доступ к ним. Мы используем Joomla 1.5 в качестве нашего основного интерфейса, и мне интересно, можем ли мы использовать аутентификацию от Joomla, чтобы определить, вошел ли пользователь в систему или нет из нашего приложения, которое находится за пределами среды Joomla. Если мы сможем избежать интеграции фреймворка joomla в наш код, это будет предпочтительнее.

Не будучи экспертом в системе аутентификации Joomla, есть ли у кого-нибудь идеи подсказать, вошел ли пользователь в систему или нет? Я предполагаю, что мы посмотрим на идентификатор сеанса, а затем используем его для выполнения запроса к базе данных, чтобы увидеть, кто пользователь, и если они вошли в систему?

Ответы [ 2 ]

0 голосов
/ 25 июня 2012

Это поздно в игре, но в случае, если это кому-то еще нужно. Вы можете легко получить доступ к большей части Joomla Envrionment:

  1. Создайте файл платформы Joomla для включения, как показано ниже:
  2. Включить этот файл в ваш скрипт

yourscript.php

require_once('joomla_platform.php');
$user =& JFactory::getUser();
if($user->gid <25) {
    die ("YOU CANT BE HERE");
}

joomla_platform.php

<?php
    /* Force Debugging here, otherwise the loaded configuration will define it. */
    define( 'JDEBUG', 1 );
    /* If not already done, initialize Joomla framework */
    if (!defined('_JEXEC')) {
        define( '_JEXEC', 1 );
        //        define('JPATH_BASE', dirname(__FILE__) );
        define ('JPATH_BASE', "c:\\wamp\\www\\hosted\\newday");
        define( 'DS', DIRECTORY_SEPARATOR );
        /* Required Files */
        require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
        require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
        /* To use Joomla's Database Class */
        require_once ( JPATH_BASE .DS.'libraries'.DS.'joomla'.DS.'factory.php' );
        require_once ( JPATH_LIBRARIES.DS.'joomla'.DS.'import.php'); // Joomla library imports.
        /* Create the Application */
        global $mainframe;
        $mainframe =& JFactory::getApplication('site');

        global $mainframe;
    }
/*    $config = new JConfig(); */
/*    $db = &JFactory::getDBO(); */
?>
0 голосов
/ 13 февраля 2010

Есть несколько инструментов, найденных по адресу:

http://extensions.joomla.org/extensions/access-a-security/authentication-external

Который должен уметь ответить на ваш вопрос. От LDAP до NDIS существует множество способов сделать это.

...