Termos de verificação do usuário
Para configurar a Verificação de usuário, é necessário estar familiarizado com tokens, chaves e conjuntos de chaves. Estes termos descrevem os conceitos fundamentais associados a esse recurso. Se quiser mais contexto, este artigo detalhará os termos que devem ser compreendidos.
Edições obrigatórias
| Ver edições com suporte. | |
Este artigo se aplica a:
|
Canais de chat no aplicativo aprimorado e chat da Web aprimorado |
Este artigo não se aplica a:
|
WhatsApp aprimorado, Facebook Messenger aprimorado, SMS padrão e aprimorado, Apple Messages for Business aprimorado, LINE aprimorado e Traga seu próprio canal |
JSON (Notação de objeto JavaScript)
O que é?
JSON é um formato de dados padrão aberto que usa uma sintaxe simples e legível por humanos para armazenar e transferir dados. Embora ele tenha "JavaScript" no nome, o formato é independente da linguagem. O conceito básico é um elemento que consiste em uma chave, seguido por dois pontos (:), seguido por um valor. Você pode criar elementos para strings, números e valores booleanos. Você também pode criar uma lista separada por vírgulas de elementos ou aninhar elementos dentro de elementos ao criar objetos.
Para saber mais, consulte RFC 8259.
Como usá-lo para chat aprimorado?
Nossos tokens e chaves são armazenados usando JSON.
Mostre-me um exemplo!
Aqui está um exemplo de alguns JSON.
{
"name": "Carrie",
"age": 135,
"isHappy": true,
"favorite_colors": ["blue", "green", "yellow"],
"catch_phrase": "I can’t believe I’m 135 years old!"
}Token da Web JSON (JWT, pronunciado "jot")
O que é?
Um JWT é uma maneira compacta e independente de passar informações entre duas partes. Os dados em um JWT são armazenados como um objeto JSON. Frequentemente, ele é assinado digitalmente para que o destinatário possa verificar a integridade dos dados. Um JWT geralmente também é codificado para garantir que seja seguro para URL quando for passado.
Um JWT consiste em três partes: um cabeçalho, uma carga útil e uma assinatura. O cabeçalho contém informações sobre como o token é assinado. A carga útil contém informações sobre o usuário e outros dados. A assinatura contém o resultado assinado do cabeçalho, da carga útil e do segredo. A assinatura não criptografa os dados e garante que os dados não foram adulterados.
Para saber mais, consulte RFC 7519.
Como usá-lo para chat aprimorado?
Um JWT garante que exibimos o histórico de conversas certo para o usuário certo. Depois de verificar se o token é válido, usamos o assunto do token, a propriedade "sub", para identificar o usuário e exibir seu histórico de conversas. O valor "sub" no JWT é armazenado como parte do campo Chave da plataforma do Messaging do registro Usuário final do Messaging. Por exemplo, se o valor "sub" for user-123, a chave da plataforma de mensagens poderá ser v2/iamessage/AUTH/{auth_id_info}/uid:user-123.
Mostre-me um exemplo!
Esse JSON é um cabeçalho de exemplo.
{
"kid": "123456",
"typ": "JWT",
"alg": "RS256"
}Esse JSON é uma carga útil de exemplo.
{
"sub": "user-123",
"iss": "example.com",
"exp": 1674164345,
"iat": 1674158345
}Quando um JWT é assinado e codificado, ele tem este formato.
hhhhhhh.ppppppp.sssssssQuando hhhhhhh representa o cabeçalho, ppppppp representa a carga útil e sssssss representa a assinatura.
Estes dados são um exemplo de JWT codificado.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5cVocê pode usar um site como JWT.io para decodificar um JWT codificado.
Chave Web JSON (JWK) e conjunto de chaves Web JSON (JWKS)
O que é?
Um JWK representa uma chave criptografada pública que pode ser usada para verificar a validade de um token (para verificação do usuário, esse token é um token da Web JSON). Um conjunto de chaves JWK é conhecido como conjunto de chaves da Web JSON (JWKS).
Para saber mais, consulte RFC 7517.
Como usá-lo para chat aprimorado?
Usamos um conjunto de chaves da Web JSON para verificar a validade do token Web JSON (JWT). Dessa maneira, podemos garantir que um token não adulterado veio da origem correta. Exigimos um comprimento de chave RSA mínimo de 2048 bits.
Mostre-me um exemplo!
{
"kid":"123456",
"alg":"RS256",
"use":"sig",
"kty":"RSA",
"x5c":["<Your public certificate>"],
"y":"y",
"n":"<Base64-encoded modulus>",
"e":"<Base64-encoded public exponent>",
"crv":"crv",
"d":"d",
"k":"k"
}

