phpRS 2.8.x : phpRS Fórum
Toto fórum je určené výhradně k diskuzi o verzích phpRS v2.8.x.
phpRS - redakční a informační systém
"hromadne" prihlaseni
Zaslán uživatelem/kou: Honzik (IP adresa zaznamenána)
Datum: 2010-06-16, 08:16

Ahoj.
Mam malou otazku:
Mam weby tte.hekttor.biz a vytopna.hekttor.biz. Oba bezi na phpRS.
Chtel bych udelat, ze kdyz se jako ctenar prihlasim do vytopny, byl bych automaticky prihlaseny i do tte.
Zkousel jsem upravit soubor trmyreader.php a v nem funkci GenerujSession , ale nepomoho mi to. Prihlasil jsme se na vytopne, ale tte prihlasene nebylo.


Kazdy web ma svoji databazi databazovy uzivatel je pro oba weby stejny.
Zatim mam stejneho ctenare v hazdem webu, ale pak bych chtel udelat nejakou centralni databazi.

Dokazal by mi nekdo poradit ?
Dekuji Honza

Re: "hromadne" prihlaseni
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2010-06-16, 10:01

Dá sa to spraviť niekoľkými spôsobmi. Autentifikácia užívateľa funguje tak, že po prihlásení phpRS uloží do cookie kľúč, ktorého existencia v cookies sa kontroluje pri overovaní. Problém je ten, že k obsahu cookie sa dostane len skript bežiaci na (sub)doméne, ktorá cookie uložila. Druhý problém je, že obsah kľúča sa kontroluje v tabuľke rs_cte_session v databáze phpRS, ktorý zrovna spracováva prihlásenie. Musíš buď zjednotiť tabuľku pre ukladanie session pre oba systémy a zabezpečiť aby sa cookie ukladali tak, aby boli dostupné aj zo subdomén - to myslím umožňuje správne nastavenie 5. parametra php funkcie setcookie.

Dalšia možnosť je prihlásenie na druhý web po úspešnom prihlásení na prvom. Dá sa to napíklad pomocu presmerovania alebo vygenerovania HTTP requestu na druhú (sub)doménu napríklad takto: /readers.php?akce=login&rjmeno=meno&rheslo=heslo

Problém je ale bezpečnosť. Ak prihlásenie posielaš cez GET, uchovajú sa prihlasovacie údaje v logoch a niekto ich môže zmeužiť. Preto je ideálne posielať to cez POST SSL protokolom (https).

Re: "hromadne" prihlaseni
Zaslán uživatelem/kou: Honzik (IP adresa zaznamenána)
Datum: 2010-06-16, 13:25

Dekuji za odpoved.
ja uz se do toho trosku hrabal, ale na to setcookie jsem zapomel.
Urcite to udelam prvnim zpusobem.
Diky Honza

Re: "hromadne" prihlaseni
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2010-06-16, 15:26

Ak použiješ prvý variant, bude tam pravdepodobne viac problémov. Bude treba používať pre všetky databázové tabuľky súvisiace s užívateľmi (readers) spoločnú databázu. Neviem kde všade to bude treba zmeniť, ale určite minimálne aj v tabuľke rs_ctenari a rs_levely. Hlavne synchronizácia levelov môže robiť problémy...

Re: "hromadne" prihlaseni
Zaslán uživatelem/kou: Honzik (IP adresa zaznamenána)
Datum: 2010-06-16, 19:52

Toho se zatim moc nebojim, protoze levely zatim nepouzivam a kdyby slo vsechno spatne, prijdu max o 3 ucty.
A jeste to chci upravit tak, ze jeden uzivatel muze mit na kazde subdomene jiny level.
Honza

P.S. Jestli bude phpRS3, tak chci videt, jak na tom delam update - on by to byl problem uz ted...... :-)

Re: "hromadne" prihlaseni
Zaslán uživatelem/kou: Honzik (IP adresa zaznamenána)
Datum: 2010-06-20, 23:24

Takze se mi "globalni prihlaseni" asi povedlo.
Zatim jsem upravil jen jednu subdomenu s tim, ze session vytvari pro vsechny subdomeny a tabulka ctenari a tabulka sessions jsou v separe databazi.
Kazda subdomena muze mit sve levely.
pa3k :diky za rady.


Honza

Re: "hromadne" prihlaseni
Zaslán uživatelem/kou: mr3ska (IP adresa zaznamenána)
Datum: 2010-06-21, 10:21

bys tu mohl vypsat popis kdyz uz jsi si s tim hral. nekomu by se to urcite mohlo hodit ;)

Re: "hromadne" prihlaseni
Zaslán uživatelem/kou: Honzik (IP adresa zaznamenána)
Datum: 2010-06-21, 11:03

Uprinou soustrast tomu, kdo by to podle me chtel upravovat.....
1) Vytvoril jsem si separe databazi pro globalni informace

2) sem jsem si nakopiroval tabulky ctenari a cte_session
U tabulky ctenari jsem prejmenoval sloupec level_ctenare (pisu to z hlavy, takze presny nazev si nemapatuji) na [nejakou predponu]_level_ctenare.

Tohle je ztoho duvodu, ze u kazde subdomeny muze mit ctenar jiny level. Samozrejme je nutne osetrit, to, kdyz z jedne subdomeny delam registraci noveho ctenare, tak aby se do sloupce napr. sub2_level_ctenare natahla vychozi hodnota.

3) upravil jsem soubor config.php - pridal jsem tam 2 globalni promenne
- jedna promenna je pro nazvu globalni databaze . Tady by bylo dobre, aby to bylo u vsech subdomen nastavene stejne.....
- druha promenna je pro zadani predpony pro level ctenare. napr. $glob_slprefix="sub1_" a pak se to dotazuje na sloupec sub1_level_ctenare

4) uprava souboru trmyreades.php
- pridal jsem funkci :
function setcookielive($name, $value='', $expire=0, $path='', $domain='', $secure=false, $httponly=false) {
//set a cookie as usual, but ALSO add it to $_COOKIE so the current page load has access
$_COOKIE[$name] = $value;
return setcookie($name,$value,$expire,$path,$domain,$secure,$httponly);
}
tuhle funkci pouzivam misto setcookie a 5. parametr je domena ulozeni session. takze ja tam mam jako parametr primo hekttor.biz a tim si tam muzu cist ze vsech subdomen.
potom jsem v tomto souboru upravil vsechny dotazy tak, aby si to nacitazlo z "globalni" dtabaze.
napri misto "select ids from ".$GLOBALS["rspredpona"]."cte_session ted mam : "select ids from ".$GLOBALS["globalni databaze"].".".$GLOBALS["rspredpona"]."cte_session
a u dotazu, kde pracuji s levelem upravim nazev sloupce levelu

5) readers.php - zase - vsude upravit dotazy aby to bralo data z globalni datbaze a u levelu ctenare aby se generoval spravny nazev sloupce

6) aconfig.php - u fuknce DelLevel() je zase potreba upravit dotaz, kdtery zjistuje, jestli je mazany level pouzivany, nebo ne

7) areaders.php - vsude upravit dotazy


Samozrejme, ze by to slo asi zjednodusit a tetno popis je brany obecne. Ale jedine progamovani bylo jen bod 4 a to jsem tu funkci stahl z php.net.
Urcite by bylo jeste dobre dat do souboru config.php prommenou, pro domenu na session - ja na to byl liny a napsal jsem to do folani fce setcookielive natvrdo....

Ahoj Honza



Celkem upraveno 2×. Poslední úprava Honzik v 21.06.2010 11:05.

Re: "hromadne" prihlaseni
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2010-06-21, 12:43

Fajn že sa podarilo. Ja by som šiel inou cestou. Pri všetkých readers akciách by som posielal HTTP autentifikačné požiadavky alebo požiadavky na zmeny na ostatné weby. Príde mi to ako elegantnejšie riešenie a nie je obmedzené spoločnou doménou ani nutnosťou zmeny databáz.

Re: "hromadne" prihlaseni
Zaslán uživatelem/kou: Honzik (IP adresa zaznamenána)
Datum: 2010-06-21, 13:37

Je to otazka, co by bylo lepsi.
Ja jsem chtel mit prave jedno misto s uctama - jestli to je, nebo neni dobry napad - to ukazou az dejiny....
Propojovat se na ostatni domeny zatim nepotrebuji. Kdyby jo, tak prez HTTP(s) by to bylo asi nejefektivnejsi.
Honza



Lituji, ale pouze registrovaní uživatelé mohou zasílat příspěvky do této sekce.
This forum powered by Phorum and designed by STaNBoSS.