无法在nodejs中使用cookie解析器读取cookie

时间:2017-09-24 16:40:19

标签: javascript angularjs node.js cookies jwt

我的项目中有一个angularjs前端和nodejs后端。在角度代码我使用$ cookies对象设置cookie并且其工作正常,因为我可以在浏览器左上角的“显示页面信息”中找到cookie。但是当我向后端发送获取请求时,我无法在那里读取该cookie。我在server.js中有这些行:const cookieParser = require('cookie-parser');以及后来app.use(cookieParser());。 然后我试着这样做:

//custom passport jwt extraction function
var cookieExtractor = function (req) {

    console.log(req.cookies); //logs a '{}'

    var token = null;
    if(req && req.cookies)
    token = req.cookies['jwt'];
    return token;
};

这里出现问题,因为cookies对象是空的(我在控制台中得到'{}')。我在这做错了什么?

编辑:

我附上了我的应用程序设置的浏览器cookie(抱歉非英语):cookies

1 个答案:

答案 0 :(得分:0)

试试这样:

如果你想将一个cookie设置为字符串使用put方法。

并且您希望将cookie设置为对象使用putObject方法。

Angularjs

angular.module('cookiesExample', ['ngCookies'])
.controller('ExampleController', ['$cookies', function($cookies) {
  var obj = {};
  obj.name = "Hello world";
  $cookies.putObject('myCookie', obj);
}]);

<强>的NodeJS

var cookieParser = require('cookie-parser');
module.exports = function(app) {
    app.use(cookieParser());
}

console.log('cookie', req.cookies.myCookie);