Why is req.cookies undefined?

SITUATION:

I am trying to check if my user is checked when he makes a request to the server.

I searched Google a bit and found this:

How to show a different page if the user has registered through firebase

So here I will try to implement this solution using this library:

https://github.com/js-cookie/js-cookie/blob/latest/src/js.cookie.js


CODE:

server side

  var cookies = require("cookie-parser");

  router.get("/", function(req, res, next){


      const { token } = req.cookies;

      console.log('Verifying token', token);


 });

on the client side

<script src="/public/js/cookieScript.js"> </script>

<a href="/upload" class = "authIn uploadButton btn btn-success pull-right">UPLOAD</a>

<script>

        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
             });
        });

</script>
0
source share
5 answers

Apparently your code is correct on the server. Therefore, the cookie should not be set correctly on the client.

/ cookie, 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
                 });
            });
+1

, .

express.cookieParser() app.router; , cookieParser() , .

+2

cookie-parser -, :

var express = require('express');
var app = express();
var cookies = require("cookie-parser");

app.use(cookies());
0

!

My cookie is not transmitted over https (yet).

 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
             });
        });

securemust be set to false.

0
source

Source: https://habr.com/ru/post/1653102/


All Articles