(NE)Prihlaseni na vice PC

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
stefi023
Člen | 71
+
0
-

Ahoj,

jakym zpusobem by se dalo resit to, kdyz bych chtel aby mohl byt uzivatel prihlasen pouze z jednoho pocitace (resp prohlizece). Dejme tomu ze mam dlouhou dobu expirace. Tzn sitace:

prihlasim se na jednom pc, tam neco delam, neodhlasim se a odejdu.
Prihlasim se na druhym pocitaci kde chci nadale pracovat. V tu chvili bych rad aby se na prvnim pocitace automaticky odhlasil (samozrejme neresim to ze se ten prohlizec sam ohlasi, ale aby se zneplatnila session a pri jakekoliv dalsi akci na prvnim PC me to vyhodilo, ze nejsem prihlasen)

A zaroven jak docilim toho ze nejprve pri prihlaseni mam nastavenou expiraci dejtme tomu na 60 minut a pri urcite akci chci aby se vubec neexpirovalo tzn neco jako setExpiration(false) nebo clearExpiration()

Nejaky napad? Diky moc!

jazby
Člen | 44
+
0
-

No já bych to řešil tak, že bych do DB uložil id session k přihlášenému uživateli a pokud bych se přihlásil jinde a zjistil, že session je již v db nastavena, smaznul bych k tomu na serveru session a uložil si do db tu aktuální. Jestli na to ale nette má jiný přístup, netuším…

Editoval jazby (14. 4. 2011 8:43)

koblamic
Člen | 6
+
0
-

ohledně tohoto tématu, zneplatňování session. Jak je zmíněno v první příspěvku. Jak by se to dalo v Nette vyřešit? Situace: zapomněl jsem lognutý acount v kavárně, a odjinud bych se tlačítkem odhlásil?
Dík moc.

Filip Procházka
Moderator | 4668
+
0
-

Musíš mít někde uložené, jaké sessionId měl uživatel a mít možnost je úplně smazat.

Potřebuješ tedy nastavit vlastní úložiště, nejlépe do databáze, abys session mohl mazat.

koblamic
Člen | 6
+
0
-

mohu požádat o nějaký vzorový kód?
co se týče nastavení vlastního úložiště do DB.
děkuji

Editoval koblamic (5. 2. 2012 22:10)

bojovyletoun
Člen | 667
+
0
-

Když jsme u toho úložiště dat, tak se chci zeptat, ohledně právě persistence dat uživale. Když se uživatel přihlásí, tak Authenticator vytáhne(resp UserModel) nějaké data z permanentního úložiště a předá je o identity, která se pak ukládá do session, což není permanentní, když třeba dojde ke smazání session z prohlížeče nebo třeba ze /session serveru.

Takže když si user změní nějaká data, tak je nutné je uložit právě z identity do Permanentního úložiště (nejčastěji db). Proto se chci zeptat, zda je obvyklé tedy tento mezičlánek přeskočit a používat rovnou ukládání do DB (Díky interface ISessionStorage). Používá se to v praxi? Má to třeba výkonnostní problémy?

Filip Procházka
Moderator | 4668
+
0
-

Když si user změní nějaká data, tak je přeci rovnou ukládáš do databáze a i do identity.