Hasła robocze – .credentials.development.js
exports.credentials = { cookieSecret : "9to mmóje hasło developerskie" }
Hasła produkcyjne – .credentials.production.js
exports.credentials = { cookieSecret : "Hasło produkcyjne 123" }
config.js – dołącza/przełącza odpowiedni plik z hasłami
const env = process.env.NODE_ENV || 'development' const {credentials} = require(`./.credentials.${env}`) module.exports = {credentials}
Przełączanie środowiska: development/production
// Hasła poza gita echo '.credentials.*' >> .gitignore // Ustawienie aktualnego środowiska export NODE_ENV=development echo $NODE_ENV // Instalacja pakietu # npm install cookie-parser
główny plik aplikacji – main.js
const cookieParser = require('cookie-parser') const {credentials} = require('./config') app.use( cookieParser(credentials.cookieSecret) ) // hasło do podpisywanie cookie
Dostęp – request
const normal_c = req.cookies.monster const signed_c = req.signedCookies.signed_monster
Ustawianie – response – nazwa, wartość, opcje
res.cookie('monster', 'nom_nom') // Podpisane cookie - jeśli zostanie zmienione - serwer odrzuci a użyje domyślnej wartości res.cookie('signed_monster', 'au_au', { signed: true })
Usunięcie – response
res.clearCookie('monster')
Ustawianie – wszystkie opcje
res.cookie('cookie_name', 'cookie_val', { domain: 'example.com', path: '/', maxAge: 12345678 //ms secure: true, httpOnly: true, signed: true })