2017-04-11 39 views
1

創建在JavaScript中的cookie對於一個OAuth流,我喜歡這樣的設置在一個cookie的訪問令牌服務器(快遞)上:無法毀壞由快遞

res.cookie('name' , 'myname', {httpOnly: false, path:'/'}); 
res.cookie('access_token', accessToken); 

// on the client 
console.log(document.cookie); // displays "name=myname; access_token=12345" 

當/如果訪問令牌不再有效,我想銷燬cookie。因此,在客戶端上,如果服務器發生故障,使與訪問令牌的成功請求我這樣做:

document.cookie = 'name=myname; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/'; 
console.log(document.cookie) // displays "access_token=12345" 

所以,由於某種原因,它消除了cookie的「名字」部分,但不是訪問令牌。我怎樣才能完全銷燬餅乾?

我看到了有關路徑應該如何相同或httpOnly設置爲true的其他評論會阻止JavaScript改變cookie,但我已經解決了所有這些問題,並且仍然在cookie中使用了令牌。

+0

當你執行這個=>'文件,會發生什麼.cookie ='name = access_token;到期日=星期四,1970年1月1日00:00:00 UTC;路徑= /';' –

回答

1

使用下面的代碼:

var delete_cookie = function(name) { 
    document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 
}; 
delete_cookie('name'); 
delete_cookie('access_token'); 
+0

工作正常!謝謝 –

0

來設置cookie的,你可以使用

res.cookie("key", value); 

刪除Cookie,你可以使用

res.clearCookie("key"); 
+0

我想清除客戶端的cookie。 –