Модераторы: nerezus, IZ@TOP, awers, skyboy, SamDark, MoLeX
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сессии 2 программы (roundcube и админка) 
:(
    Опции темы
Теги: нет
gcc (Online)
Дата 27.8.2009, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2215
Друзей: 0; Групп: 0
Регистрация: 25.4.2008
Где: %&й

Репутация: -1
Всего: 11



есть 2 программы 1) roundcube и 2) админка l!

roundcube использует пхп сессии?

(надо сделать не мне)

как сделать чтобы пользователь который находиться в админке, при переходе в roundcube, авторизировался в roundcube под тем же логином и паролем который в админке...??

самый прстой вариант:  это передать через GET логин и пароль, но это не правильно...
исходники roundcube я не смотрел, возможно там повышенная безопасть которая не даст в других вариантах это так просто сделать...

или я что-то не понял?


--------------------
PM WWW ICQ   Вверх
Ипатьев
Дата 27.8.2009, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Друзей: 0; Групп: 0
Регистрация: 5.7.2009

Репутация: 27
Всего: 36



Цитата(gcc @  27.8.2009,  20:12 Найти цитируемый пост)
как сделать чтобы пользователь который находиться в админке, при переходе в roundcube, авторизировался в roundcube под тем же логином и паролем который в админке...??

если это все а одном домене то посмотреть в коде, что пишется в куки или сессию.
и записать то же самое
PM MAIL   Вверх
gcc (Online)
Дата 27.8.2009, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2215
Друзей: 0; Групп: 0
Регистрация: 25.4.2008
Где: %&й

Репутация: -1
Всего: 11



а roundcube привязывает сессию к ip?

на одном домене (сервере)

а такая схема будет работать:

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


--------------------
PM WWW ICQ   Вверх
Ипатьев
Дата 27.8.2009, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Друзей: 0; Групп: 0
Регистрация: 5.7.2009

Репутация: 27
Всего: 36



я впервые слышу слово roundcube, поэтому мне бесполезно задавать вопросы про то, что она делает или не делает
непонятно, ходить на собственный сайт через сокеты
PM MAIL   Вверх
icewind
Дата 27.8.2009, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 390
Друзей: 0; Групп: 0
Регистрация: 11.4.2009
Где: Ростов-на-Дону

Репутация: 20
Всего: 20



Возможно стоит посмотреть в сторону api и готовых плагинов Там есть и авторизации. Например Autologin


--------------------
user posted image
PM MAIL Skype   Вверх
gcc (Online)
Дата 28.8.2009, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2215
Друзей: 0; Групп: 0
Регистрация: 25.4.2008
Где: %&й

Репутация: -1
Всего: 11



icewind,  тыкни пальцем пожалуйста, а то я не вижу где дам плагин для входа
и я не вижу как запустить

Это сообщение отредактировал(а) gcc - 28.8.2009, 00:46


--------------------
PM WWW ICQ   Вверх
icewind
Дата 28.8.2009, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 390
Друзей: 0; Групп: 0
Регистрация: 11.4.2009
Где: Ростов-на-Дону

Репутация: 20
Всего: 20



AutoLogin плагин предназначенный для логина в roundcube, через другие скрипты...
Ноги растут отсюда

Честно говоря доки по плагинам маловато, как и по самому апи, но, я думаю, разобраться будет не сложно


--------------------
user posted image
PM MAIL Skype   Вверх
gcc (Online)
Дата 28.8.2009, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2215
Друзей: 0; Групп: 0
Регистрация: 25.4.2008
Где: %&й

Репутация: -1
Всего: 11



я скопировал это скрипт https://svn.roundcube.net/trunk/roundcubema...n/autologon.php в каталог плагин, там где он должен быть, а что дальше делать? как мне авторизировать автоматически?


Код

      $args['user'] = 'me';
      $args['pass'] = '******';
      $args['host'] = 'localhost';

$args['user']  - это логин пользователя
$args['pass']  - это пароль
      и последжнее его айпи

в это тскрипт можно передать адные через system()

а если скрипт валяется где-то на севрере, то как указать путь к классу rcube_plugin ?


Это сообщение отредактировал(а) gcc - 28.8.2009, 06:55


--------------------
PM WWW ICQ   Вверх
icewind
Дата 28.8.2009, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 390
Друзей: 0; Групп: 0
Регистрация: 11.4.2009
Где: Ростов-на-Дону

Репутация: 20
Всего: 20



Цитата(gcc @  28.8.2009,  01:48 Найти цитируемый пост)
я скопировал это скрипт https://svn.roundcube.net/trunk/roundcubema...n/autologon.php в каталог плагин

Это сэмпл. Я имел ввиду этот
Код

class autologin extends rcube_plugin
{

  function init()
  {
    $this->add_hook('startup', array($this, 'startup'));
    $this->add_hook('authenticate', array($this, 'authenticate'));
  }

  function startup($args)
  {
    $rcmail = rcmail::get_instance();

    $autologin = get_input_value('_autologin', RCUBE_INPUT_POST);

    // change action to login
    if ($args['task'] == 'mail' && empty($args['action']) && empty($_SESSION['user_id']) && !empty($autologin)) {
      $args['action'] = 'login';

      // set initial cookie without this cookie login is not possible
      $_COOKIE['roundcube_sessid'] = session_id();
    }
    return $args;
  }

  function authenticate($args)
  {
    $autologin = get_input_value('_autologin', RCUBE_INPUT_POST);

    if (!empty($autologin)) {
      $args['user'] = get_input_value('_user', RCUBE_INPUT_POST);
      $args['pass'] = get_input_value('_pass', RCUBE_INPUT_POST);
      $args['host'] = get_input_value('_host', RCUBE_INPUT_POST);
    }
    return $args;
  }
}



По идее надо прописать autologin как плагин в config/main.inc.php.
Код

$rcmail_config['plugins'] = array('autologin'); //Как - то так


Автоматический логин происходит не по вызову от сервера, а при попытке клиента зайти в свой аккаунт ему вместо формы для логина сразу показывается панель управления. По идее для этого в сессии должны лежать user, pass и host. А если их там не будет, тогда rc пойдет искать в POST

Есть еще вариант отредактировать index.php ( в rc )
Где - то в районе 240 строки изменить код на этот
Код

if (empty($USER->ID))
{
rcmail_login($_SESSION[”user”], $_SESSION[”pass”], $host);
if ($_task == “login”)
header(”Location: $RoundCubeDIR”);
exit;
}

Где user и pass - данные пользователя







--------------------
user posted image
PM MAIL Skype   Вверх
gcc (Online)
Дата 28.8.2009, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2215
Друзей: 0; Групп: 0
Регистрация: 25.4.2008
Где: %&й

Репутация: -1
Всего: 11



icewind, то есть передать через system? или я не понял?

а сессии там причем? мне нужно сессию инициализировать? или не надо?

написать скрипт, наследовать класс rcube_plugin, принять логин и пароль и выполнить?

а к какому классу относиться rcmail_login?

rcmail_login($_SESSION[”user”], $_SESSION[”pass”], $host);


Это сообщение отредактировал(а) gcc - 28.8.2009, 22:55


--------------------
PM WWW ICQ   Вверх
icewind
Дата 28.8.2009, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 390
Друзей: 0; Групп: 0
Регистрация: 11.4.2009
Где: Ростов-на-Дону

Репутация: 20
Всего: 20



Цитата(gcc @  28.8.2009,  22:51 Найти цитируемый пост)
то есть передать через system

В этом варианте нет ( Хотя не уверен что есть другой приемлемый )


Цитата(gcc @  28.8.2009,  22:51 Найти цитируемый пост)
мне нужно сессию инициализировать

Да, и далее, в случае успешной авторизации, положить в нее данные пользователя. И все. Затем пользователь заходит через веб интерфейс в rc и если установлен плагин autologin и в сессии есть необходимые данные, то его автоматически (прозрачно) логинят и он думает что залогинился только один раз при входе на основной сайт.

P.S. А речь, случайно, не идет об интеграции cPanel и rc?


--------------------
user posted image
PM MAIL Skype   Вверх
gcc (Online)
Дата 28.8.2009, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2215
Друзей: 0; Групп: 0
Регистрация: 25.4.2008
Где: %&й

Репутация: -1
Всего: 11



icewind, нет не с Cpanel, с моей программой... она написана не на php

Добавлено через 2 минуты и 26 секунд
Цитата(icewind @ 28.8.2009,  23:05)
если установлен плагин autologin и в сессии есть необходимые данные, то его автоматически (прозрачно) логинят и он думает что залогинился только один раз при входе на основной сайт.

извиние, я вас не понимаю, так у меня есть логин и пароль в моей программе который надо туда отправить и авторизировать, ты имеешь ввиду через GET отправить? каком образом я туда отправлю через POST? 

Это сообщение отредактировал(а) gcc - 28.8.2009, 23:11


--------------------
PM WWW ICQ   Вверх
icewind
Дата 28.8.2009, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 390
Друзей: 0; Групп: 0
Регистрация: 11.4.2009
Где: Ростов-на-Дону

Репутация: 20
Всего: 20



Цитата(gcc @  28.8.2009,  23:11 Найти цитируемый пост)
она написана не на php

Вот это меняет дело так как речь как раз шла о пхп сессиях... 

Цитата(gcc @  28.8.2009,  23:11 Найти цитируемый пост)
ты имеешь ввиду через GET отправить

Нет, конечно!

Можно написать для вашей админки модуль, который бы при авторизации через сокет открывал соединение с модулем авторизации rc и POST'ом передавал бы данные, а потом брал куки, которые передал rc и перенаправлял бы в броузер клиента вместе с заголовками от админки. Главное чтоб клиенту поставилась кука roundcube_sessid.

Будет прозрачная авторизация, хотя, возможно, способ далеко не по феншую  smile 


--------------------
user posted image
PM MAIL Skype   Вверх
gcc (Online)
Дата 29.8.2009, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2215
Друзей: 0; Групп: 0
Регистрация: 25.4.2008
Где: %&й

Репутация: -1
Всего: 11



roundcube айпшник к сессии привязывает?


--------------------
PM WWW ICQ   Вверх
gcc (Online)
Дата 29.8.2009, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2215
Друзей: 0; Групп: 0
Регистрация: 25.4.2008
Где: %&й

Репутация: -1
Всего: 11



там можно выключить, тогда выключу, скорее всего...

Цитата

Нужно еще повысить безопасность сессии, привязав ее к IP-адресу:

$rcmail_config['ip_check'] = true;



а подлскажите вариант, как сделать в случае если io к сессии если есть вариант? тут огда пол roundcube нужно будет переписывать?
(админку мне сказали написать на perl, я ее и написал, если бы знать что roundcube надо ставить, то писал бы на php)

Это сообщение отредактировал(а) gcc - 29.8.2009, 11:38


--------------------
PM WWW ICQ   Вверх
Google
  Дата 2.9.2010, 22:44 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
IZ@TOP
skyboy
SamDark
MoLeX
awers

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 


Rambler's Top100

[ Время генерации скрипта: 0.4555 ]   [ Использовано запросов: 28 ]   [ GZIP включён ]


Реклама на сайте

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Хостинг: Vingrad Hosting     Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.