Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Minz: Session cookie bug (nginx?) #924

Closed
ToEvenStay opened this issue Jul 27, 2015 · 33 comments
Closed

Minz: Session cookie bug (nginx?) #924

ToEvenStay opened this issue Jul 27, 2015 · 33 comments
Assignees
Milestone

Comments

@ToEvenStay
Copy link

Bonjour ,
Depuis ma nouvelle installation de FreshRSS sur mon serveur je ne peut plus me connecter depuis un smartphone ou une tablette Android .
Lorsque je me connecte il charge la page mais revient automatiquement sur la page pour se connecte sans message d'erreur ni rien d'autre . Le mot de passe est bon j'ai vérifié .
J'ai donc été ensuite dans les paramètres change le mode d'authentification pour ne rien mettre bien évidement cela à fonctionner .
Aussi je n'ai aucun problème pour me connecter depuis d'autre pc plusieurs navigateurs essayer .
Par contre sur mobile j'ai essayer touts les navigateurs du Play Store mais cela n'a rien changé .
Voici les terminaux sur lequel j'ai essayé : Galaxy S6 - Galaxy Note4 -Galaxy Note10.1 tous de Samsung mais je ne pense pas que cela vient de la marque tous aussi sont sur Android Lollipop ce qui n'avait posé aucun problème avant .
Alors sur mon serveur je suis sur Debian 8 avec ispconfig3 et Nginx .
Je suis sur la dernière version bêta de FreshRSS comme avant .
Je ne sais pas vous donnez quoi d'autre comme info dans les logs il a ceci à chaque fois que je veux me connecter depuis mon mobile :
Password mismatch for user=ToEvenStay, nonce=, c=$2a$04$ccKM/O9bitvzuN/hAYP3COYtJLaME53SFxCGBjtZNPiaq21z7Y2J6
Merci d'avance de votre aide .

@Alkarex
Copy link
Member

Alkarex commented Jul 27, 2015

Je vais essayer de trouver un moment pour regarder. nonce ne devrait pas être vide. Pas d'autres messages dans les logs PHP ou de FreshRSS ? Pas de bloqueur JavaScript sur la tablette ?

@ToEvenStay
Copy link
Author

Non pas d'autre message et pas de bloqueur sur la tablette . Merci d'avance .

@Alkarex
Copy link
Member

Alkarex commented Jul 27, 2015

Ok. Pour avoir plus de logs, on peut se mettre en mode development dans data/config.php.

@ToEvenStay
Copy link
Author

J'ai ceci en plus maintenant dans les logs :
Invalid credential parameters: user=ToEvenStay challenge=$2a$04$7kdYvasmxxBSvxHR1ydT4espUvHYE7EvIeox72b6TKdZXUNt7jYWe nonce=

@ToEvenStay
Copy link
Author

Que puis-je faire d'autre ?

@Alkarex
Copy link
Member

Alkarex commented Jul 28, 2015

Je viens de tester avec Firefox Mobile 40.0 et avec le navigateur Internet par défaut sur Samsung Galaxy S4 (Android 5.0.1), sans problème.

  • Pourriez-vous essayer avec la version /dev de FreshRSS ? Sinon, quelle version exacte de FreshRSS avez-vous ?
  • Avez-vous essayé avec Firefox Mobile ?
  • Avez-vous des erreurs JavaScript ?
  • Si cela n'aide toujours pas, pourriez-vous peut-être m'envoyer en privé l'adresse où je pourrais tester le problème ?

@ToEvenStay
Copy link
Author

.J'ai la version 1.1.1-beta
.J'ai essayé touts les navigateurs mobile sur chaque mobile différent .
.Je ne pense avoir d'erreur JavaScript
.Je vous ai envoyé mon accès au flux .
Merci d'avance .

@Alkarex
Copy link
Member

Alkarex commented Jul 28, 2015

Pour info, /dev testé à l'instant sur une Samsung Galaxy Tab S 10.5 (Android 5.0.2) avec le navigateur par défaut, sans problème.

@ToEvenStay
Copy link
Author

Le problème reste le meme meme en dev

@Alkarex
Copy link
Member

Alkarex commented Jul 28, 2015

Il y a apparemment un problème de cookies avec votre configuration : les clients mobiles n'envoient pas de cookie de session. J'ai mis quelques messages de débogage supplémentaire sur votre instance, mais il faut que je fasse une pause maintenant. Je reprendrai plus tard.

@ToEvenStay
Copy link
Author

D'accord merci

@ToEvenStay
Copy link
Author

Bonsoir , je sais pas si les maj on réglé le problème ?

@Alkarex
Copy link
Member

Alkarex commented Jul 30, 2015

Voici un log des entêtes HTTP lors de la connexion sur votre système. Il semble y avoir deux lignes Set-Cookie, ce qui pourrait être la source du problème. C'est peut-être spécifique à nginx:

GET /p/i/?c=javascript&a=nonce&user=ToEvenStay HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
X-Requested-With: XMLHttpRequest
Referer: http://example.com/p/i/
Connection: keep-alive

HTTP/1.1 200 OK
Server: nginx/1.6.2
Date: Thu, 30 Jul 2015 20:23:50 GMT
Content-Type: application/json; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: FreshRSS=octj8rrqulcrg52m0vvnmhejv6; path=/flux/p/i
Set-Cookie: FreshRSS_login=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0
Etag: "b2007f7bf153d138d8d25c7810eedc5c"
Last-Modified: Thu, 30 Jul 2015 20:23:50 GMT
Expires: 0
Cache-Control: private, no-cache, no-store, must-revalidate
Pragma: no-cache

@ToEvenStay
Copy link
Author

Je peux donc faire quoi pour le résoudre ?

@Alkarex
Copy link
Member

Alkarex commented Jul 30, 2015

J'ai dit une bêtise : j'ai bien deux lignes sous Apache aussi dans ce cas là.
Ben pour résoudre, il faudrait commencer par récupérer les entêtes HTTP sur mobile. Il serait aussi bien de trouver quelqu'un d'autre avec le même problème, ou d'arriver à le reproduire sur nos machines. Ma meilleure piste actuellement me semble être un problème de configuration de cookies dans nginx.

@Alkarex
Copy link
Member

Alkarex commented Jul 30, 2015

Je suis en train de regarder un peu plus

@ToEvenStay
Copy link
Author

Merci , en plus je pars en vacance samedi donc j'aimerais bien avoir mes flux en vacances :( voulez-vous le tuto que j'ai pris pour installé mon serveur ?

@Alkarex
Copy link
Member

Alkarex commented Jul 30, 2015

Trouvé, c'est un bug dans Minz

@ToEvenStay
Copy link
Author

Ah bonne nouvelle alors . Merci .

@Alkarex
Copy link
Member

Alkarex commented Jul 30, 2015

Bon, ça marche chez vous là.
Mais j'ai fait pas mal de changements par ci, par là, aussi il serait bien d'installer la /dev actuelle, et de changer la fonction suivante dans lib/Minz/Session.php. Je vais préparer un patch aussi.

    public static function keepCookie($l) {
            // Get the script_name (e.g. /p/i/index.php) and keep only the path.
            $cookie_dir = dirname(empty($_SERVER['REQUEST_URI']) ? '/' : dirname($_SERVER['REQUEST_URI']));
            session_set_cookie_params($l, $cookie_dir, '', false, false);
    }

C'était le path de Set-Cookie qui n'était pas bon (path=/flux/p/i au lieu de path=/p/i) à cause de l'utilisation de SCRIPT_NAME au lieu de REQUEST_URI

@Alkarex Alkarex added this to the 1.1.3-beta milestone Jul 30, 2015
@Alkarex Alkarex changed the title Impossible de me connecter depuis un smartphone ou tablette Minz: Session cookie bug (nginx?) Jul 30, 2015
@Alkarex Alkarex self-assigned this Jul 30, 2015
Alkarex added a commit to Alkarex/FreshRSS that referenced this issue Jul 30, 2015
@ToEvenStay
Copy link
Author

Un grand merci de votre aide

@Alkarex
Copy link
Member

Alkarex commented Jul 30, 2015

Un peu tard pour intégrer ce correctif dans la bêta 1.1.2, mais pour référence #919

@ToEvenStay
Copy link
Author

Voilà j'ai bien ajouté le code à la fin du fichier mais maintenant j'ai un erreur 500 :
ERROR 500 - Internal Server Error!

The following error occurred:

The requested URL caused an internal server error.

If you get this message repeatedly please contact the webmaster.

@ToEvenStay
Copy link
Author

Problème réglé merci

Alkarex added a commit to Alkarex/FreshRSS that referenced this issue Jul 30, 2015
@Alkarex
Copy link
Member

Alkarex commented Jul 30, 2015

@ToEvenStay Je viens de faire un patch. Ça serait bien si vous pouviez tester cette version
#936

    public static function keepCookie($l) {
        // Get the script_name (e.g. /p/i/index.php) and keep only the path.
        $cookie_dir = empty($_SERVER['REQUEST_URI']) ? '/' : $_SERVER['REQUEST_URI'];
        if (substr($cookie_dir, -1) !== '/') {
            $cookie_dir = dirname($cookie_dir) . '/';
        }
        session_set_cookie_params($l, $cookie_dir, '', false, false);
    }

@ToEvenStay
Copy link
Author

Pas de problème toujours en /dev ?

@Alkarex
Copy link
Member

Alkarex commented Jul 30, 2015 via email

@ToEvenStay
Copy link
Author

Il me met que vous n'avez rien modifié depuis 9heures :
capture

@Alkarex
Copy link
Member

Alkarex commented Jul 30, 2015

Le patch n'est pas encore dans /dev : il est en phase de test / relecture.
Seule la fonction ci-dessus a changé. Vous pouvez soit changer la fonction à la main comme tout à l'heure, soit utiliser le branche du patch #936

@ToEvenStay
Copy link
Author

Oui cela fonctionne bien vous pouvez tester aussi de chez vous avec mon flux si vous voulez .

@ToEvenStay
Copy link
Author

Bonjour , beaucoup d'erreur dans les logs . Pouvez y jeter un œil pour voir si c'est normal ? Merci .

@Alkarex
Copy link
Member

Alkarex commented Jul 31, 2015

Quelles erreurs plus précisément ?
Pour PubSubHubbub, voir https://freshrss.org/freshrss-supports-pubsubhubbub.html

@Alkarex
Copy link
Member

Alkarex commented Aug 4, 2015

Le patch est dans /dev N'hésitez pas à confirmer que cela marche (ou pas...)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants