Visão Geral
O OneSignal oferece um recurso de segurança aprimorado chamado Verificação de Identidade para ajudar a prevenir personificação de usuário. Este recurso utiliza JSON Web Tokens – ou JWTs, gerados com segurança em seu servidor. Para verificar informações de assinatura, esses tokens são passados para seu aplicativo e API do OneSignal. Recomendamos habilitar a Verificação de Identidade para:- Fazer login de usuários
- Adicionar assinaturas de email
- Adicionar assinaturas de SMS
- Modificar identidades de usuário
Entre em contato com
support@onesignal.com para habilitar isso.Pré-requisitos
- Um aplicativo OneSignal existente com uma plataforma push configurada.
- Um aplicativo móvel integrado com um dos SDKs suportados:
Configuração
1
Gerar novas chaves
Faça login em sua conta OneSignal e navegue até Settings > Keys & IDs > Identity Verification.
Clique em Generate New Keys para criar um novo par de chaves.
Baixe o arquivo PEM ou copie a chave privada, certificando-se de armazenar a chave privada com segurança.

Configuração de Verificação de Identidade

Criando novo par de chaves

Par de chaves de Verificação de Identidade
Sempre armazene suas chaves privadas em um ambiente seguro, como um sistema de gerenciamento de chaves. Nunca exponha chaves privadas
2
Gerar JWT de verificação em seu backend
A verificação de identidade requer autenticar o usuário final com seu servidor de autenticação antes de fazer login no OneSignal. Quando o usuário final autentica com seu backend, gere o token e inclua-o na resposta de autenticação para o dispositivo. Se seu aplicativo não executar um servidor backend, considere configurar um servidor leve para verificar usuários e gerar esses tokens.A chave privada está no arquivo da etapa anterior que baixamos do Painel.
Payload do JWT
O JWT pode ter as seguintes propriedades:Seu OneSignal App ID
A data de expiração do token.
O alias do usuário.
subscriptions
Obrigatório apenas ao adicionar assinaturas de Email e SMS a um usuário.
Assinar o JWT
Assine o JWT usando o algoritmo ES256. Certifique-se de que seu backend está configurado para usar este método de assinatura para evitar problemas de verificação ao enviar o JWT para o OneSignal. Recomendamos uma Biblioteca JWT para fazer isso.Exemplo usando jsonwebtoken:Incluindo assinaturas
Idealmente, detalhes de assinatura, como email ou número de telefone, são incluídos no payload do JWT ao fazer login de um usuário. Se esses detalhes não estiverem disponíveis antecipadamente, seu servidor de verificação deve fornecer um endpoint para gerar tokens dinamicamente conforme as informações de assinatura ficam disponíveis.Exemplo: Gerar JWT para adicionar assinaturas3
Passar JWT para o método `login`
Depois que seu backend gerar o JWT, chame o método
login com ele. Este token garante que a identidade do usuário seja verificada antes que quaisquer alterações, como adicionar uma assinatura de email ou SMS, possam ser feitas.Exemplo de fazer login:4
Manipular eventos do ciclo de vida do JWT
Você precisará implementar um endpoint dedicado em seu backend para lidar com cenários como invalidação de token. Este endpoint deve fornecer um JWT atualizado quando o OneSignal solicitar uma atualização.Exemplo de lidar com invalidação de token e atualizar o JWT:Isso garante que quando o JWT de um usuário for invalidado, um novo possa ser buscado do seu backend e passado para o OneSignal. Você também pode usar esta função para gerar um token com email e número de telefone, permitindo que você gerencie assinaturas de email e SMS se o token criado durante a autenticação não os contiver.
5
Habilitar verificação de identidade de token no painel
Em Settings > Keys & IDs, alterne Token Identity Verification para habilitar.
Uma vez habilitado, seu aplicativo deve enviar JWTs do OneSignal para verificar a autenticidade da assinatura. Além disso, seu aplicativo é obrigado a chamar o método

Habilitando Token Identity Verification
login usando um JWT gerado pelo seu servidor de token de verificação de identidade.Adicionar assinaturas
Você não precisa realizar etapas extras para adicionar assinaturas do seu aplicativo móvel; chamar o método de login lida automaticamente com isso para você.- Adicionar um email
- Adicionar um número de telefone
API REST
Quando a Verificação de Identidade de Token está habilitada, todas as solicitações para as seguintes APIs devem incluir um JWT gerado pelo servidor nos cabeçalhos como um token de portador, por exemplo,Authorization: Bearer <JWT>.
- Create user
- View user
- Update user
- Delete user
- View user identity
- Create alias
- Delete alias
- Create subscription
- Update subscription