2017-09-24 104 views
-1

我的項目中有一個angularjs前端和nodejs後端。在角碼中,我使用$ cookies對象設置一個cookie並且它的工作正常,因爲我可以在瀏覽器左上角的「顯示頁面信息」中找到cookie。然而,當即時通訊發送請求到後端我不能在那裏讀取該cookie。我在我的server.js中有這些行:const cookieParser = require('cookie-parser');及更高版本app.use(cookieParser());。 然後我試着這樣做:無法在nodejs中使用cookie解析器讀取cookie

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

在這裏發生的問題,因爲餅乾的對象是空的(我得到「{}」在控制檯)。我在這裏做錯了什麼?

編輯:

我安裝我的應用程序中設置瀏覽器的cookie的SS(對不起,非英語語言):cookies

+0

是否使用快遞的NodeJS? – lilezek

+0

是的,我確實使用快遞 – dudinii

回答

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

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

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

我仍然無法訪問服務器端的cookie。 req.cookies.myCookie未定義。 – dudinii

+0

請驗證cookie是否存在您的瀏覽器應用程序 – Chandru

+0

正如我之前所說。 Cookie存在於瀏覽器中。我只是不能在nodejs中訪問它們(我可以在角度tho中)。可能cookie路徑設置爲「/ auth」是一個問題嗎?它是我設置角度應用的路徑。 – dudinii