javascript - 为什么 req.cookies 未定义?

标签 javascript node.js cookies firebase firebase-authentication

情况:

我正在尝试检查我的用户在向服务器发出请求时是否经过身份验证。

我用谷歌搜索了一下,发现了这个:

How to show different page if user is logged in via firebase

下面是我尝试使用这个库实现这个解决方案:

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


代码:

服务器端

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

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


      const { token } = req.cookies;

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


 });

客户端

<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>

最佳答案

除了需要 cookie-parser 之外,您还应该配置您的 express 应用程序以使用它:

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

app.use(cookies());

关于javascript - 为什么 req.cookies 未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41720801/

相关文章:

arrays - 在数组字段中查找匹配项

javascript - 使用 jquery cookie 插件设置主体类

javascript - 为什么我不能让背景中的山脉以视差方式移动?

javascript - 阻止 iPhone 降低视频质量 &lt;input type =“file” >

c# - 使用 JSON 持久化数据

javascript - NodeJS Express 网络抓取 header 问题

javascript - 在 JavaScript 中处理同时按下的多个键

javascript - Expressjs 认证

java - gwt rpc 中的 session ID cookie

Jquery Cookie 插件 - 多个值?