cookies ve standalone rezimu
- kleinpetr
- Člen | 480
Ahoj,
narazil jsem na problem pri pouziti standalone v ios. Jde o to, ze vzdy po spusteni app z homescreen se nacte znovu a ztrati state. Googlil jsem celkem dost a nasel tohle
„https://stackoverflow.com/questions/7077518/ios-full-screen-web-app-drops-cookies
“:https://stackoverflow.com/…rops-cookies
Jen nevim jak presne nastavit nastavit timeout v nette, dalsi problem totiz je, ze ikdyz mam v configu session 14 days a nastavim pri login treba 10days, tak se stejne odhlasi po par hodinach, nekdy i velmi rychle. Tusim, ze pro SSL je nejake nastaveni pro session timeout, chapu tedy spravne, ze kdyz mam SSL session timeout na 10m tak po 10minutach neaktivity maze session ?
Jak idealne zjistit na serveru/aplikaci detailni nastaveni cookies a session.
Diky
- David Matějka
- Moderator | 6445
Jen nevim jak presne nastavit nastavit timeout v nette, dalsi problem totiz je, ze ikdyz mam v configu session 14 days a nastavim pri login treba 10days, tak se stejne odhlasi po par hodinach, nekdy i velmi rychle.
to mas nejaky vlastni server? jaky os? muze souviset s tim, ze nektere linuxove distribuce (debian, ubuntu) maji na mazani session cron, ktery maze expirovane session. ten vsak bere v potaz globalne nastavenou expiraci a ignoruje (respektive nezna) expiraci nastavenou v aplikaci. resenim tak muze byt zvyseni globalni expirace session, pripadne zmena save_path (a povoleni session gc)
- kleinpetr
- Člen | 480
Server jede na Ubuntu 16.04 a ted nove na NginX. Kdyz jsem prechazel na nginx tak jsem nastavoval prave nejake ssl execution, konkretne tyto radky
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
Tak to asi muze byt jedna vec.. Druha vec muze byt ten cron, jak to zjistim ? Za roota nejsou zadne crony aktivni, jak mohu tedy eventuelne zvysit globalni expiraci ?
Kdyz budu ukladat do vlastni path, budu pak mit kontrolu nad expirovanyma sessions pro jejich nasledne mazani ?
Mockrat diky za pomoc, ted jsem zrovna zjistil, ze to dela vsude, klient mi ted psal, ze mel neco rozdelaneho ve formu a ani ne hodina neaktivity a uz ho to odhlasilo.
Diky
- David Matějka
- Moderator | 6445
ten cron je vetsinou v /etc/cron.d/
funguje to tak, ze to bere hodnotu z globalniho php.ini a maze starsi soubory, kdyz tu hodnotu zvysis, tak to bude fungovat.
druha moznost je s tou session_path. ale aby se ti sessions mazaly, tak bud musis napsat vlastni cron nebo povolit u php session garbage collector (konfiguracni promenne session.gc_probability a dalsi), viz dokumentace php
- David Matějka
- Moderator | 6445
session.gc_maxlifetime = 1440
je zivotnost session v sekundach. cron pak maze stare session. kdyz vypnes cron, muzes zapnout php session gc, ktery ovlivnuji promenne
session.gc_divisor
session.gc_probability
pri jejich nastaveni na 100 a 1 se budou pri jednom requestu ze sta hledat a mazat stare session soubory
- kleinpetr
- Člen | 480
Diky, takze kdyz nastavim natvrdo session.gc_maxlifetime treba na tyden a potom se bude respektovat expirace nastavena v aplikaci ?
jake reseni bys doporucil nebo sam pouzivas aby se ti user neodhlasil jednou za hodinu a jednou za 20min. Je teda rozdil pouze v tom, jestli je chodi mazat cron, ktery zjistit stari a porovna se session.gc_maxlifetime a nebo nastavim collector, ktery se defaultne podiva 1 za 100 requestu, ale zadny jiny rozdil v tom neni. Jak tedy ovlivnuje nastaveni expirace session primo v nette ?
Diky
Edit:
kdyz pak koukam na specifikaci kde se pise session.cookie_lifetime specifies the lifetime of the cookie in seconds which is sent to the browser. The value 0 means „until the browser is closed.“
tak kdyz tenhle parametr necham default 0, tak nastaveni expirace v nette parametrem true nebo false na zavreni prohlizece nema tedy zadny vliv
Editoval kleinpetr (26. 1. 2018 18:57)
- kleinpetr
- Člen | 480
@DavidMatějka tak po par tydnech pouzivani, mam stale problem, ze to uzivatele treba po hodine a pul vyhodi, jde o to, ze vyplnuje dlouhy form, napadlo me treba v pozadi nastavit interval na nejaky ajax, aby udrzoval session, ale ten pak zase killne pripadne ajax pozadavky vyvolane uzivatelem…
Nenapada te nejake reseni ? Diky
Editoval kleinpetr (14. 2. 2018 17:58)
- David Matějka
- Moderator | 6445
asi to nemas porad spravne nastavene. ten globalni
gc_maxlifetime
je nutne nastavit pro CLI php, takze se koukni, jake
hodnoty to vyhodi pro php -i
prikaz.
pripadne zcela vypni ten cron a res to pres session gc
- kleinpetr
- Člen | 480
v /etc/php/7.1/fpm/php.ini mam nastaveno
session.gc_maxlifetime = 86400
ale php -i vyhodi toto
Registered save handlers => files user
Registered serializer handlers => php_serialize php php_binary wddx
Directive => Local Value => Master Value
session.auto_start => Off => Off
session.cache_expire => 180 => 180
session.cache_limiter => nocache => nocache
session.cookie_domain => no value => no value
session.cookie_httponly => Off => Off
session.cookie_lifetime => 0 => 0
session.cookie_path => / => /
session.cookie_secure => Off => Off
session.gc_divisor => 1000 => 1000
session.gc_maxlifetime => 1440 => 1440
session.gc_probability => 0 => 0
session.lazy_write => On => On
session.name => PHPSESSID => PHPSESSID
session.referer_check => no value => no value
session.save_handler => files => files
session.save_path => /var/lib/php/sessions => /var/lib/php/sessions
session.serialize_handler => php => php
session.sid_bits_per_character => 5 => 5
session.sid_length => 26 => 26
session.upload_progress.cleanup => On => On
session.upload_progress.enabled => On => On
session.upload_progress.freq => 1% => 1%
session.upload_progress.min_freq => 1 => 1
session.upload_progress.name => PHP_SESSION_UPLOAD_PROGRESS => PHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefix => upload_progress_ => upload_progress_
session.use_cookies => On => On
session.use_only_cookies => On => On
session.use_strict_mode => Off => Off
session.use_trans_sid => 0 => 0
Editoval kleinpetr (14. 2. 2018 19:06)