Je me bats depuis quelques semaines avec un bug qui me rend fou. S'il vous plaît aider!django-social-auth donne 502 erreur avec Google OpenID, mais seulement avec quelques utilisateurs
est ici le symptôme:
Si l'utilisateur n'est pas connecté à GMail, il peut se connecter sur mon site (en utilisant GMail openID) sans problème. Cela invitera l'utilisateur à s'authentifier d'abord dans GMail en premier.
Cependant, si l'utilisateur est déjà authentifié dans GMail, il voit une page d'erreur 502, générée par nginx.
Cela se produit uniquement à quelques utilisateurs (je ne suis pas l'un d'entre eux), et l'un d'entre eux a eu la gentillesse de faire rapport et a même fait une vidéo pour démontrer:
http://rvzt.net/Temp/google-freedomsponsors.webm
Bizarre ISN » t-il?
J'ai ajouté quelques lignes de débogage à django-auth sociale dans la production pour essayer de comprendre ce qui se passe (here, juste ne ctrl + f + « enregistreur » pour trouver mes changements)
Avec cette configuration , les tentatives de connexion de santé inonderont mon (django) fichier journal avec des trucs comme
2013-09-06 11:19:26,659 [DEBUG] social_auth.backends: auth_complete ARGS=(), KWARGS={...} 2013-09-06 11:19:26,666 [DEBUG] social_auth.backends: response and status <openid.consumer.consumer.SuccessResponse id='https://id.mixi.jp/10452407' signed=[u'openid.mode', u'openid.claimed_id', u'openid.identity', u'openid.op_endpoint', u'openid.return_to', u'openid.response_nonce', u'openid.assoc_handle', u'openid.ax.type.nickname', u'openid.ns.ax', u'openid.ax.mode', u'openid.ax.value.nickname']>/success 2013-09-06 11:19:26,675 [DEBUG] social_auth.views: got user: 5ca95b48317944cd87b7d5af4b6e77 2013-09-06 11:19:26,683 [DEBUG] social_auth.views: return redirect to:/
Cependant cet utilisateur particulier a échoué les tentatives de connexion produisent pas de sortie dans le fichier journal de django. Ainsi, il ne touche même pas la méthode de vue.
Cependant, il existe quelques journaux sur nginx.
Voici ce que une mauvaise tentative de connexion ressemble (en /var/log/nginx/access.log):
`` ` 130.225.243.86 - - [03/Sep/2013: 13: 23: 39 +0000] "GET/complete/google /? Janrain_nonce = 2013-09-03T13% 3A23% XXXXXXXXXXX & openid.ns = http% 3A% 2F% 2Fspecs.openid.net% 2Fauth% 2F2.0 & openid.mode = id_res & openid.op_endpoint = https% 3A% 2F% 2Fwww.google.com% 2Faccounts% 2Fo8% 2Fud & openid.response_nonce = 2013-09-03T13% 3A23% 3A38Zh5WrngwxTu2ByQ & openid.return_to = http% 3A% 2F% 2Ffreedomsponsors. org% 2Fonctionné% 2Fgoogle% 2F% 3Fjanrain_nonce% 3D2013-09-03T13% 253A23% 253XXXXXXXXXX & ope nid.assoc_handle = 1.AMlYXXXXXXXXXXXr5MKoxu- k -3cnkXXXXXXXXXXXXXXXXXXXXXXgdEpo3HOg & openid.signed = op_endpoint% 2Cclaimed_id% 2Cidentity% 2Creturn_to% 2Cresponse_nonce% 2Cassoc_handle% 2Cns.ext1% 2Cext1.mode% 2Cext1.type.old_email% 2Cext1.value.old_email% 2Cext1.type.first_name% 2Cext1.value.first_name% 2Cext1.type.nom_de_dresse% 2Cext1.value.nom_de_dresse% 2Cext1.type.email% 2Cext1.value.email & openid.sig = 3n46MUyn8wIIWpvYIJXj% 2BeZqC7o% 3D & openid.identity = https% 3A% 2F% 2Fwww.google.com% 2Faccounts% 2Fo8% 2Fid% 3Fid% 3DAItOawmGmlrjd-OuXXXXXXXXXXXXXXXtIXGpMJQ & openid.claimed_id = https% 3A% 2F% 2Fwww.google.com% 2Faccounts% 2Fo8% 2Fid% 3Fid% 3DAItOawmGmlrjd- OuXXXXXXXXXXXXXXXXIXGpMJQ & openid.ns.ext1 = http% 3A% 2F% 2Fopenid.net% 2Fsrv% 2Fax% 2F1.0 & openid.ext1.mode = fetch_response & openid.ext1.type.old_email = http% 3A% 2F% 2Fschema.openid.net% 2Fcontact% 2Femail & openid.ext1.value.old_email = xxxxxxxxx.junior% 40gmail.com & openid.ext1.type.first_name = http % 3A% 2F% 2Faxschema.org% 2FnamePerson% 2Ffirst & & openid.ext1.value.first_name = Bastian openid.ext1.type.last_name = http% 3A% 2F% 2Faxschema.org% 2FnamePerson% 2Flast & & openid.ext1.value.last_name = Hougaard Openid. ext1.type.email = http% 3A% 2F% 2Faxschema.org% 2Fontact% 2Femail & openid.ext1.value.email = xxxxxxxxx.junior% 40gmail.com HTTP/1.1 "502 575" http://freedomsponsors.org/login/google/ "" Mozilla/5.0 (X11 , Linux x86_64) AppleWebKit/537,36 (KHTML, comme Gecko) Chrome/Safari 29.0.1547.62/537,36"
`` `
Ceci est toujours accompagné d'une entrée dans/var/log/nginx/erreurs. Connectez-vous comme:
2013/09/06 10:46:06 [error] 667#0: *116533 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 130.225.198.129, server: freedomsponsors.org, request: "GET //complete/google/?janrain_nonce=2013-09-03T13%3A23%XXXXXXXXXXX&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.mode=id_res&openid.op_endpoint=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fud&openid.response_nonce=2013-09-03T13%3A23%3A38Zh5WrngwxTu2ByQ&openid.return_to=http%3A%2F%2Ffreedomsponsors.org%2Fcomplete%2Fgoogle%2F%3Fjanrain_nonce%3D2013-09-03T13%253A23%253XXXXXXXXXX&openid.assoc_handle=1.AMlYXXXXXXXXXXXr5MKoxu-_k_-3cnkXXXXXXXXXXXXXXXXXXXXXXgdEpo3HOg&openid.signed=op_endpoint%2Cclaimed_id%2Cidentity%2Creturn_to%2Cresponse_nonce%2Cassoc_handle%2Cns.ext1%2Cext1.mode%2Cext1.type.old_email%2Cext1.value.old_email%2Cext1.type.first_name%2Cext1.value.first_name%2Cext1.type.last_name%2Cext1.value.last_name%2Cext1.type.email%2Cext1.value.email&openid.sig=3n46MUyn8wIIWpvYIJXj%2BeZqC7o%3D&openid.identity=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAItOawmGmlrjd-OuXXXXXXXXXXXXXXXtIXGpMJQ&openid.claimed_id=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAItOawmGmlrjd-OuXXXXXXXXXXXXXXXXIXGpMJQ&openid.ns.ext1=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0&openid.ext1.mode=fetch_response&openid.ext1.type.old_email=http%3A%2F%2Fschema.openid.net%2Fcontact%2Femail&openid.ext1.value.old_email=xxxxxxxxx.junior%40gmail.com&openid.ext1.type.first_name=http%3A%2F%2Faxschema.org%2FnamePerson%2Ffirst&openid.ext1.value.first_name=Bastian&openid.ext1.type.last_name=http%3A%2F%2Faxschema.org%2FnamePerson%2Flast&openid.ext1.value.last_name=Hougaard&openid.ext1.type.email=http%3A%2F%2Faxschema.org%2Fcontact%2Femail&openid.ext1.value.email=xxxxxxxxx.junior%40gmail.com HTTP/1.1", upstream: "uwsgi://unix:///tmp/frespo.sock:", host: "freedomsponsors.org", referrer: "http://freedomsponsors.org/login/google/"
Une tentative bonne connexion regarde la même chose (en access.log), mais au lieu de se terminant par
502 575 "http://freedomsponsors.org/login/google/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.62 Safari/537.36"
Il se termine par
302 5 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.62 Safari/537.36"
et bien sûr, il ne génère aucune entrée dans error.log.
Mon environnement de production est un nginx standard + uswgi avec les sockets de fichiers, un peu comme ce tutoriel dit ->https://uwsgi.readthedocs.org/en/latest/tutorials/Django_and_nginx.html
J'appretiate toute aide que vous pouvez donner!
J'ai essayé de reproduire l'erreur mais malheureusement, cela a très bien fonctionné avec moi, peut-être que votre journal d'erreur django aurait quelque chose à expliquer, jetez un coup d'oeil là-bas et si vous le trouvez. –
Je suis maintenant convaincu que ce n'est pas un problème django. C'est un problème entre nginx et uwsgi. Le code django ne commence même pas à s'exécuter pour cette requête. –