Вход

Просмотр полной версии : авторизация пользователя на фронте


3ton
01.03.2010, 14:01
создал расширение для авторизации пользователя на центральном сервере через WSDL

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

делаю это так

$user = $response['result'];
$GLOBALS["TSFE"]->fe_user->createUserSession($user);
$GLOBALS["TSFE"]->fe_user->loginSessionStarted = TRUE;
$GLOBALS["TSFE"]->fe_user->user = $user;
$GLOBALS["TSFE"]->loginUser = 1;
$GLOBALS["TSFE"]->fe_user->start();


но при перезагрузке страницы делаю проверку
if($GLOBALS["TSFE"]->loginUser)
и оказывается что там нуль... :(

ктото сталкивался с этим, может какого нить волшебного слова не хватает???

Valery Romanchev
01.03.2010, 16:59
правильнее это все делать через auth сервис (в репозитории много примеров по слову "auth")

Но если хочется по своему то:

насчет кода для создания юзера: есть примеры, как это делается в eid скрипте
если без eid то можно так:
- назначить $_POST те поля, которые есть у стандартного логин бокса
- вызвать типа $TSFE->initFEuser(); или $GLOBALS['TSFE']->initFEuser();

function processFELogin($data){
// We put our incoming data to the regular piVars
$_POST=$data;
$user=tslib_eidtools::initFeUser();
$GLOBALS['TSFE']->loginUser=$user->user ? 1 : 0;
$GLOBALS['TSFE']->fe_user=$user;

это в eid скрипте так сделано экст ods_ajaxfelogin

еще насчет юзера http://lists.typo3.org/pipermail/typo3-project-commerce/2008-July/002273.html
тут вариант как без $_POST сделать

дело в том, что если юзер не залогинен, то сесиия и $GLOBALS['TSFE']->fe_user все равно существуют

3ton
02.03.2010, 12:27
проблема в том что моих пользователей вообще нет и не будет в таблице fe_users

все они на центральном сервере, где и находится вся билинговая система
а типа3 только для фронта чтоб отдать его на растерзание и пользование
весь функционал построен на сервисах и вся логика происходит на стороннем сервере

Valery Romanchev
02.03.2010, 14:18
проблема в том что моих пользователей вообще нет и не будет в таблице fe_users

все они на центральном сервере, где и находится вся билинговая система
а типа3 только для фронта чтоб отдать его на растерзание и пользование
весь функционал построен на сервисах и вся логика происходит на стороннем сервере
в этом случае надо делать так, как мы делали в эксте vbulletin_auth
При логина юзера добавлять его в таблицу fe_users (если его там нет)
Иначе у вас не получится добиться полной совместимости

Еще можно посмотреть другие auth экстеншены - там есть и аутентификация относительно LDAP и внешней SQL базы