cookies ve standalone rezimu

kleinpetr
Člen | 480
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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

kleinpetr
Člen | 480
+
0
-

ok na ten collector mrknu, jinak jsem nasel toto v php.ini, ale v commentu je ze pokud se rovna 0, tak plati do restartu browseru

session.cookie_lifetime = 0

a pak jeste toto

session.gc_maxlifetime = 1440

Mohl bys me trochu zasvetit do toho gc ? nebo obecne ? Diky

David Matějka
Moderator | 6445
+
0
-
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
+
0
-

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
+
0
-

@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
+
0
-

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
+
0
-

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)

David Matějka
Moderator | 6445
+
0
-

vsak rikam, musis to mit nastaveny pro cli, ty to mas pro fpm

kleinpetr
Člen | 480
+
0
-

@DavidMatějka je nutne to nastavit na CLI, protoze to chodi mazat cron pres CLI ?

Chapu to tedu spravne, ze bych to tedy mel nastavit v /cli/php.ini a pokud bych zrusil cron, tak pote by to zaviselo na fpm/php.ini jelikoz, to spousti navsteva Xteho usera ?

David Matějka
Moderator | 6445
+
0
-

@kleinpetr jj presne tak

kleinpetr
Člen | 480
+
0
-

@DavidMatějka je v tom nejaky technicky rozdil ? treba vykonostni nebo tak neco ? A jeste tedy posledni otazka k tomu, zda je nastaveno po zavreni browseru, ma na to ten flag v nette nejaky vliv ? viz. nahore.