freeCodeCamp/guide/portuguese/javascript/manipulating-cookies/index.md

68 lines
2.9 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

---
title: Manipulating Cookies
localeTitle: Manipulando Cookies
---
## Manipulando Cookies
Obter ou definir cookies é uma operação direta que pode ser obtida acessando a propriedade cookie no objeto de documento do navegador.
Você encontra um site de receita incrível e informativo para cozinhar uma refeição estrangeira para seus convidados, mas é em idioma estrangeiro, felizmente você é capaz de alterar o idioma no site do site usando uma lista suspensa de seleção. Um par de dias depois você visita o mesmo site novamente para fazer um prato para sua mãe, mas agora você vê o site em sua língua nativa por padrão.
_O site lembra o idioma selecionado na sua última visita e o armazena na forma de um **cookie** . Agora, ele selecionou automaticamente seu idioma preferido lendo esse cookie._
`userLanguage:french`
Os cookies são usados para armazenar dados em forma de `name:value` par de `name:value` na parte do lado do cliente. Ele permite que um site armazene informações específicas do usuário no navegador para uso posterior. A informação armazenada poderia ser `sessionID` , `userCountry` , `visitorLanguage` etc.
Outra maneira de armazenar os dados no lado do cliente é o `localstorage` .
### Definir Cookie
Um cookie pode ser definido usando a sintaxe abaixo, mas uma biblioteca, como a mencionada no final, é altamente recomendada para tornar o desenvolvimento mais fácil para todos. Ao definir o cookie, você também pode definir o vencimento dele. Se ignorado, o cookie será apagado quando o navegador for fechado.
**Lembre-se de que um conjunto de cookies de um determinado domínio só pode ser lido por esse domínio e apenas por subdomínios.**
```javascript
// Using vanilla javascript
document.cookie = 'userLanguage=french; expires=Sun, 2 Dec 2017 23:56:11 UTC; path=/';
//Using JS cookie library
Cookies.set('userLanguage', 'french', { expires: 7, path: '/' });
```
_Cookie expira em 7 dias_
### Obter Cookie
```javascript
// Using vanilla javascript
console.log(document.cookie)
// => "_ga=GA1.2.1266762736.1473341790; userLanguage=french"
// Using JS cookie library
Cookies.get('userLanguage');
// => "french"
```
### Excluir Cookie
Para excluir um cookie, defina a data de validade como algo no passado.
```javascript
// Using vanilla javascript
document.cookie = 'userLanguage; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/';
//Using JS cookie library
Cookies.remove('userLanguage');
```
_Se você estiver jogando muito com cookies em seu projeto, por favor, use uma biblioteca como esta [JS Cookie](https://github.com/js-cookie/js-cookie) e poupe muito tempo._
#### Mais Informações:
* [Cookie explicado](https://www.quirksmode.org/js/cookies.html)
* [Guia de cookies MDN](https://developer.mozilla.org/en-US/docs/Web/API/document/cookie)
* [Vídeo de Cookie Udacity](https://www.youtube.com/watch?v=xdH9zsW1CK0)
* [Cookies HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies)