Automatikus login

uborka képe

Van két oldal, az egyiken bejelentkezik a felhasználó. Egy linkre kattintva átlép a másik oldalra, ahol azt szeretném, hogy ne kelljen újra bejelentkeznie, vagyis a bejelentkezés automatikusan megtörténjen. (a multisite megoldás nem jó, mert fizikailag is máhol lévő két oldalról van szó, külön webcímen).

Maga a bejentkezés adott, a drupal modul révén, viszont a jelszót azt ugyebár nem tudom, mivel kódolva tárolja a program.

A kérdésem az, hogy az A oldalon bejentkezett felhasználóról, hogyan tudom B oldalon megállapítani, hogy A oldalon ténylegesen bejelentkezett ?

B oldalon mindkét adatbázist olvasni tudom. Illetve átlépésnél át tudom "küldeni" az A oldali uid-ot. A kérdés csak annyiban Drupal kérdés, hogy a két oldalon Drupal fut.

A magam csekély tudásával arra gondolok, hogy le tudom kérdezni az B oldalon a belépő ip címét (hostname), az A oldal sessions táblájából ki tudom keresni a hozzá tartozó sid-t, amit vissza tudok (ha jól gondolom) ellenőrizni a böngészőben tárot cookie-ból. Ha minden stimmel, akkor ő az én emberem.
Ezesetben kiiktatom a password ellenörzést és beléptetem az emberem. (B oldalon nem lehet regisztrálni)

Nos elég kacifántosnak tűnik (de egy amatörtől csak ennyi várható :) ).
A kérdésem, hogy jó-e a gondolatmenetem, vagy nem elég biztonságos, esetleg van jobb megoldás is ?

uborka képe

Esetleg elég az, ha egy cookie-ban A oldalon eltárolom a felhasználó users tábla pass mezőjét, amit B oldalon visszaellenörzök ?
(persze kérdés B oldalon van-e olvasási jogom A oldal cookie-hoz ?)

0
0
jf képe

Nekem is volt már hasonló feladatom, hozzáteszem nem sikerült kielégítően megoldanom. A fő problémát az okozza, hogy az A oldal sütijét nem fogja látni a B oldal. Pusztán az ip cím ellenőrzés nem elég, mert több gép is lehet hálózatba kötve egy tűzfal mögött, és kívülről mindegyiknek ugyanaz lesz az ip címe.
Nekem csak úgy sikerült megoldanom ezt, hogy egy domainen volt a két oldal. Ebben az esetben nagyon egyszerű, csak azt kell beállítani, hogy ugyanazt a session táblát használja mind a két Drupal.

Még talán azt kipróbálhatod, ha van lehetőséged rá, hogy a B oldalt elérhetővé teszed az A egyik aldomainjéről is, és erre a címre irányítod át a felhasználót, ha át akar menni a B-be. A Freeblog például ilyen megoldást használ. A főoldal (freeblog.hu és a www.freeblog.hu) egy linux-apache-php szerveren fut, míg az adminisztrációs felület és az összes blog, egy windows kiszolgálón.

0
0
uborka képe

A felállásom

A elérése: www.valami.hu
B elérése: ez.valami.hu

Magyarán a B az A subdomain-ját használja.

Az SQL elérés ugyanaz csak két külön adatbázis van.
-------------------------------------------------------------------------

Ha jól értelmezem amit írtál, akkor B oldalnál megkeresem, hol kér adatokat a session tálából és azt átirányítom, hogy az A oldal adatbázisából kérje le ?

És ha cookei domain-hoz rendelése legyen ugyanaz ?
Akkor minkét oldal látni fogja a cookie-t ?
példa: http://drupal.hu/node/1566#comment-4559
(ezt rögtön ki is próbálom)

0
0
jf képe

//"B" oldal settings.php
 
$db_prefix = array(
  'sessions' => 'masik_adatbazis.'
)

Ha táblanév-előtagot is használsz a B adatbázisban, ebben a példában 'drupal_', akkor:
$db_prefix = array(
  'sessions' => 'masik_adatbazis.drupal_'
)

Ha a session.cookie_domain 'valami.hu', akkor látni fogják egymás sütijeit.
0
0