Cookies
Ler/Escrever cookies no AdonisJs é moleza. Você usa instâncias request e response passadas para todos os métodos do controlador e fechamentos de rota para trabalhar com cookies.
NOTA
Para manter seus cookies criptografados, certifique-se de definir APP_KEY
dentro do arquivo .env. Como alternativa, você pode usar o comando ./ace generate:key
para gerar a chave para você.
Exemplo básico
Vamos dar um exemplo básico de rastreamento de visualizações de página para um determinado usuário armazenando a contagem dentro de cookies.
Route.get('/', function * (request, response) {
const pageViews = request.cookie('pageViews', 0) // leitura
pageViews++
response.cookie('pageViews', pageViews) // escrita
})
Lendo cookies
Os cookies são lidos usando a instância de solicitação.
cookie(key, [defaultValue])
Retorna o valor do cookie para uma determinada chave. O valor padrão é retornado quando o valor existente é null
ou undefined
.
Route.get('/', function * (request, response) {
const cartTotal = request.cookie('cartTotal')
// or
const cartTotal = request.cookie('cartTotal', 0)
})
cookies
Obtém todos os cookies de volta como um objeto.
Route.get('/', function * (request, response) {
const cookies = request.cookies()
})
Escrevendo/Excluindo Cookies
Para criar/excluir cookies, você precisa usar a instância de resposta.
cookie(key, value, [options])
Route.get('/', function * (request, response) {
response.cookie('cartValue', 210)
// ou
response.cookie('cartValue', 210, {
httpOnly: true
})
})
Propriedade | tipo | descrição |
---|---|---|
path | String | Caminho do cookie. |
expires | Date | Data de expiração absoluta para o cookie. Deve ser um objeto Date válido. |
maxAge | String | Idade máxima relativa do cookie a partir do momento em que o cliente o recebe (em segundos). |
domain | String | Domínio para o cookie. |
secure | Boolean | Marca o cookie para ser usado somente com HTTPS. |
httpOnly | Boolean | Sinaliza o cookie para ser acessível somente pelo servidor web. Não pode ser acessado usando document.cookie . |
firstPartyOnly | Boolean | Define o cookie a ser usado somente pelo mesmo domínio. |
clearCookie(key)
Remove o cookie existente.
Route.get('checkout', function * (request, response) {
response.clearCookie('cartValue')
response.send('Order Confirmed')
})