我的项目中有一个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
答案 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);