Este código fornece uma implementação para gerenciar a identidade do usuário e persistir informações como userId
e anonymousId
usando diferentes mecanismos de armazenamento: cookies, localStorage e memória temporária.
- Descrição: Gerencia múltiplos mecanismos de armazenamento de forma unificada.
- Funções principais:
get(key)
: Retorna o valor associado à chave da primeira fonte onde o dado foi encontrado.set(key, value)
: Salva um valor em todos os mecanismos configurados.remove(key)
: Remove a chave de todos os mecanismos.
- Descrição: Implementa o armazenamento usando cookies.
- Funções principais:
get(key)
: Obtém o valor de um cookie.set(key, value)
: Salva um valor como cookie.remove(key)
: Remove um cookie especificado.
- Descrição: Utiliza o
localStorage
para persistir os dados no navegador. - Funções principais:
get(key)
: Retorna o valor associado à chave nolocalStorage
.set(key, value)
: Salva o valor nolocalStorage
.remove(key)
: Remove uma chave dolocalStorage
.
- Descrição: Implementa um armazenamento temporário em memória.
- Funções principais:
get(key)
: Retorna o valor armazenado na memória.set(key, value)
: Salva o valor na memória.remove(key)
: Remove o valor da memória.
- Descrição: Gerencia os identificadores do usuário (
userId
eanonymousId
). - Funções principais:
getUserId()
: Retorna ouserId
armazenado.setUserId(userId)
: Salva ouserId
.getAnonymousId()
: Retorna ou gera um novoanonymousId
.setAnonymousId(anonymousId)
: Salva oanonymousId
.generateUUID()
: Gera um identificador único.
// Criando a instância do gerenciador de identidade
const userManager = new UserIdentityManager();
// Configurando um userId
userManager.setUserId('12345');
console.log('UserId:', userManager.getUserId()); // Output: '12345'
// Trabalhando com anonymousId
console.log('AnonymousId:', userManager.getAnonymousId()); // Gera ou retorna um anonymousId existente
O anonymousId
é usado para rastrear usuários que ainda não foram identificados (ex.: visitantes do site que ainda não fizeram login).
O userId
será atualizado em todos os mecanismos de armazenamento configurados (cookies, localStorage, etc.), e o valor anterior será sobrescrito.
- LocalStorage:
- Armazena dados apenas no navegador atual.
- Não é enviado automaticamente para o servidor em cada requisição.
- CookieStorage:
- Armazena dados que podem ser compartilhados entre subdomínios.
- Os cookies são enviados automaticamente ao servidor em cada requisição.
Se localStorage
não estiver disponível, o código utiliza cookies ou memória como fallback.
Sim, basta configurar a instância de StorageManager
apenas com o MemoryStorage
.
- Adicionar suporte para sessionStorage como outro mecanismo de armazenamento.
- Implementar criptografia opcional para dados sensíveis.
- Suporte para expiração automática dos dados armazenados.