SITUATION:
J’essaie de vérifier si mon utilisateur est authentifié lorsqu’il fait une demande au serveur.
J’ai googlé un peu et trouvé ceci:
Comment afficher une page différente si l’utilisateur est connecté via firebase
Alors voici mon essai d’implémentation de cette solution en utilisant cette bibliothèque:
https://github.com/js-cookie/js-cookie/blob/latest/src/js.cookie.js
CODE:
du côté serveur
var cookies = require("cookie-parser"); router.get("/", function(req, res, next){ const { token } = req.cookies; console.log('Verifying token', token); });
côté client
UPLOAD const setAppCookie = () => firebase.auth().currentUser && firebase.auth().currentUser.getToken().then(token => { Cookies.set('token', token, { domain: window.location.hostname, expire: 1 / 24, // One hour path: '/', secure: true // If served over HTTPS }); });
Apparemment, votre code est correct sur le serveur. Par conséquent, le cookie ne doit pas être configuré correctement sur le client.
Copiez / collez la solution trouvée sur la désactivation du cookie sécurisé lorsque vous n’utilisez pas SSL:
const setAppCookie = () => firebase.auth().currentUser && firebase.auth().currentUser.getToken().then(token => { Cookies.set('token', token, { domain: window.location.hostname, expire: 1 / 24, // One hour path: '/', secure: false // <-- false here when served over HTTP }); });
Je pense que vous devriez coller un peu plus de code côté serveur.
Vous devez utiliser express.cookieParser () avant app.router; le middleware est exécuté dans l’ordre, c’est-à-dire qu’il n’arrive même jamais à atteindre cookieParser () avant l’exécution de votre route.
J’ai trouvé le problème!
Mon cookie n’est pas servi sur https (pour le moment).
const setAppCookie = () => firebase.auth().currentUser && firebase.auth().currentUser.getToken().then(token => { Cookies.set('token', token, { domain: window.location.hostname, expire: 1 / 24, // One hour path: '/', secure: true // If served over HTTPS }); });
secure
doit être défini sur false
.
Avez-vous activé l’intergiciel cookie-parser? ( https://www.npmjs.com/package/cookie-parser )
En plus d’exiger cookie-parsingur, vous devez également configurer votre application express pour l’utiliser
var express = require('express'); var app = express(); var cookies = require("cookie-parser"); app.use(cookies());