EcrituresNumeriques / stylo

Stylo est un éditeur de textes pour articles scientifiques en sciences humaines et sociales.
https://stylo.huma-num.fr
GNU General Public License v3.0
48 stars 13 forks source link

Gérer le cas où on ne rattache pas la session utilisateur lors du callback Zotero #611

Closed ggrossetie closed 8 months ago

ggrossetie commented 2 years ago

Le serveur plante car on arrive pas à récupérer l'adresse email à partir de la session :

/usr/src/app/app.js:207
      const email = req.user.email
                             ^

TypeError: Cannot read properties of undefined (reading 'email')
    at /usr/src/app/app.js:207:30
    at OAuthStrategy.strategy.success (/usr/src/app/node_modules/passport/lib/middleware/authenticate.js:219:18)
    at verified (/usr/src/app/node_modules/passport-oauth1/lib/strategy.js:168:20)
    at OAuthStrategy._verify (/usr/src/app/app.js:84:12)
    at /usr/src/app/node_modules/passport-oauth1/lib/strategy.js:184:24
    at OAuthStrategy.userProfile (/usr/src/app/node_modules/passport-oauth1/lib/strategy.js:297:10)
    at loadIt (/usr/src/app/node_modules/passport-oauth1/lib/strategy.js:362:17)
    at OAuthStrategy._loadUserProfile (/usr/src/app/node_modules/passport-oauth1/lib/strategy.js:377:25)
    at destroyed (/usr/src/app/node_modules/passport-oauth1/lib/strategy.js:159:16)
    at SessionStore.destroy (/usr/src/app/node_modules/passport-oauth1/lib/requesttoken/session.js:34:3)
    at /usr/src/app/node_modules/passport-oauth1/lib/strategy.js:201:37
    at /usr/src/app/node_modules/oauth/lib/oauth.js:472:12
    at passBackControl (/usr/src/app/node_modules/oauth/lib/oauth.js:390:11)
    at IncomingMessage.<anonymous> (/usr/src/app/node_modules/oauth/lib/oauth.js:409:9)
    at IncomingMessage.emit (node:events:402:35)
    at endReadableNT (node:internal/streams/readable:1343:12)

https://github.com/EcrituresNumeriques/stylo/blob/f9cd8aac210115a1df081714308c7c12efed5b43/graphql/app.js#L207

req.user est undefined. Peut être une protection "vie privée" de Firefox comme on change de domaine, le cookie de session est perdu ?

ggrossetie commented 2 years ago

J'ai ajouté un contrôle dans https://github.com/EcrituresNumeriques/stylo/commit/1f5f5af6bbd1a7b525b010d4781e88d861607afa il faudra surveiller les logs afin de comprendre dans quel(s) cas cette anomalie se produit.