Problema cookie

6 views
Skip to first unread message

Michele Bassanini

unread,
Oct 18, 2016, 6:17:14 AM10/18/16
to yii...@googlegroups.com

Ciao a tutti,

ho un problema con la funzione
Yii::$app->user->login($this->getUser(),0);
che si trova nella mia LoginForm.

Nel caso in cui ci sia come parametro dei secondi di validità il valore 0 il sistema non mi logga e non salva il cookie (come se scadesse subito, invece nella documentazione dovrebbe valere fino a fine sessione del browser)


e mi esce



Se imposto il valore a 10
Yii::$app->user->login($this->getUser(),10);
mi salva in effetti il cookie _identity con la scadenza dopo 10 secondi


Ci sto sbattendo la testa da troppo, magari mi sfugge qualcosa.


Grazie,
Michele
-- 
Ing. Michele Bassanini
Area Tecnica Informatica
Servizio Automazione Gestionale
Università degli Studi di Pavia
Via Ferrata, 1
27100 Pavia - Italy
E-mail: michele....@unipv.it
tel: +39.0382.98.5285

Andrea Epifani

unread,
Oct 18, 2016, 6:50:06 AM10/18/16
to yii...@googlegroups.com
prova con:

class User extends ActiveRecord implements IdentityInterface
{
}

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "yii-it" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a yii-it+unsubscribe@googlegroups.com.
Per postare in questo gruppo, invia un'email a yii...@googlegroups.com.
Visita questo gruppo all'indirizzo https://groups.google.com/group/yii-it.
Per altre opzioni visita https://groups.google.com/d/optout.

Michele Bassanini

unread,
Oct 18, 2016, 6:51:30 AM10/18/16
to yii...@googlegroups.com
È già così la classe User :/
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a yii-it+un...@googlegroups.com.

Per postare in questo gruppo, invia un'email a yii...@googlegroups.com.
Visita questo gruppo all'indirizzo https://groups.google.com/group/yii-it.
Per altre opzioni visita https://groups.google.com/d/optout.

Fabrizio Caldarelli

unread,
Oct 18, 2016, 6:58:53 AM10/18/16
to yii...@googlegroups.com
Dall'errore che ricevi sembra più un problema di csrf.

Prova a disabilitarlo, vedi se funziona. Se è così, almeno hai circoscritto il problema.

Il 18/10/16 12:51, Michele Bassanini ha scritto:

Andrea Epifani

unread,
Oct 18, 2016, 7:04:33 AM10/18/16
to yii...@googlegroups.com
si potrebbe essere il csrf,
controlla anche nel config, che sia impostato correttamente
'user' => [
      'identityClass' => 'app\models\User', //User e non Users o viceversa
      'enableAutoLogin' => true,
]

Michele Bassanini

unread,
Oct 18, 2016, 7:05:44 AM10/18/16
to yii...@googlegroups.com
In main.php avevo
    'components' => [
           'request' => [
               'csrfParam' => '_csrf-frontend',
               'csrfCookie' => [
                       'httpOnly' => true,
                       'path' => '/',
               ],
           ],
che ammetto di aver copiato da una guida on line, quando è sorto il problema del login con parametro 0 ho disabilitato tutte le aggiunte ma non cambia nulla.
Il main.php di frontend:
    'components' => [
//         'request' => [
//             'csrfParam' => '_csrf-frontend',
//             'csrfCookie' => [
//                     'httpOnly' => true,
//                     'path' => '/',
//             ],
//         ],
        'user' => [
            'identityClass' => 'common\models\User',
            'enableAutoLogin' => true,
//            'identityCookie' => [
//                     'name' => '_identity-frontend',
//                     'path' => '/',
//                     'httpOnly' => true
//             ],
        ],
//         'session' => [
//             // this is the name of the session cookie used for login on the frontend
//             'name' => 'unipv-contoterzi-frontend',
//         ],
]

pensavo di essere tornato alla configurazione "standard" ma evidentemente mi sfugge qualcosa

Andrea Epifani

unread,
Oct 18, 2016, 7:09:44 AM10/18/16
to yii...@googlegroups.com
prova a disattivarlo a livello di singola action:
Yii::$app->controller->enableCsrfValidation = false;

Michele Bassanini

unread,
Oct 18, 2016, 7:19:13 AM10/18/16
to yii...@googlegroups.com
Il 18/10/2016 13:09, Andrea Epifani ha scritto:
> Yii::$app->controller->enableCsrfValidation = false;

Nada... err 400 Bad request e non mi salva _identity
Ho controllato e c'è anche <?= Html::csrfMetaTags() ?> nel mio layout.

:/

d4rkstar

unread,
Oct 18, 2016, 7:23:55 AM10/18/16
to yii-it

Andrea Epifani

unread,
Oct 18, 2016, 7:27:48 AM10/18/16
to yii...@googlegroups.com
questo ce l'hai nella form?
<input type="hidden" name="_csrf" value="<?php echo Yii::$app->request->getCsrfToken(); ?>">
messo a mano o con i tag di ActiveForm

Michele Bassanini

unread,
Oct 18, 2016, 7:37:07 AM10/18/16
to yii...@googlegroups.com
$enableSession messo in config\main.php sotto 'User', ma non cambia nulla.

L'input hidden non ce l'ho, anche se lo aggiungo non cambia nulla.

Il discorso è che se imposto dei secondi nel metodo della login

Yii::$app->user->login($this->getUser(),10);
il tutto funziona, quindi non dovrebbe essere un errore in model view o controller, ma proprio nella configurazione. Non capisco cosa cambi nell'impostare quel valore a zero o a un numero > 0 dovrebbe solo far scadere lo stesso cookie in un momento diverso...
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a yii-it+un...@googlegroups.com.

Per postare in questo gruppo, invia un'email a yii...@googlegroups.com.
Visita questo gruppo all'indirizzo https://groups.google.com/group/yii-it.
Per altre opzioni visita https://groups.google.com/d/optout.

Michele Bassanini

unread,
Oct 18, 2016, 7:54:26 AM10/18/16
to yii...@googlegroups.com
Ho scaricato il template advanced di yii pulito pulito.

Ho modificato solo la classe User che va a leggere in tabella gli utenti e ho disabilitato il $rememberMe in LoginForm:
    public $rememberMe = false;
e continua a non loggarmi.

A questo punto mi chiedo se qualcuno ha mai usato con successo la login con 0

Yii::$app->user->login($this->getUser(),0);

Il 18/10/2016 13:27, Andrea Epifani ha scritto:
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a yii-it+un...@googlegroups.com.

Per postare in questo gruppo, invia un'email a yii...@googlegroups.com.
Visita questo gruppo all'indirizzo https://groups.google.com/group/yii-it.
Per altre opzioni visita https://groups.google.com/d/optout.

Simone Gentili

unread,
Oct 18, 2016, 10:22:53 AM10/18/16
to yii...@googlegroups.com
Hai provato a ripetere le operazioni: scaricare di nuovo il template advanced, modificando la classe user, ... Probabilmente nel mezzo hai modificato altro e non te ne sei reso conto o non ricordi.
Simone (Demo) Gentili // PHP Web Developer

skype: rastagnolo
twitter:@sensorario
mobile: 3492893030
Reply all
Reply to author
Forward
0 new messages