Node – cookie

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