eggJs中Cookie儲存中文的方法

前言

關於eggjs中的cookie / session用法,官方文件已寫的相當清楚,就不再贅述。可至文末參考資料參考

而在eggJs中,若將cookie存成中文,會直接報錯。

若真的很想要放,有兩種比較tricky的作法!

方法一:轉成base64

將想要儲存的中文字使用Node.Js原生的功能來轉換

new Buffer('hello world!').toString('base64');
// 得到 aGVsbG8sIHdvcmxkIQ==
new Buffer('aGVsbG8sIHdvcmxkIQ==', 'base64').toString();
// 得到 hello world!

cookie儲存時會存入類似一串亂碼的東西,使用時再轉換回來就可以順利取得中文字了

方法二:利用encrypt加密

同樣原理,將想要保存的中文加密,得到的也是一串亂碼字串

ctx.cookies.set(key, value, {
maxAge:24 * 3600 * 1000,
httpOnly: true, 
encrypt: true,
});

取得時解密回來仍會是正常的中文字

參考資料

eggjs官方文件/Cookie 与 Session