Setting the encryption secret
As sessões com criptografia de ponta a ponta são criadas por meio de APIs do servidor (consulte “Ativando a criptografia usando o API REST). Para que um cliente React Native participe de uma sessão com criptografia de ponta a ponta, defina o encryptionSecret adereço do OTSession componente:
<OTSession
applicationId="api-key"
sessionId="session-id"
token="token"
encryptionSecret="initial-encryption-secret"
>
<OTPublisher />
<OTSubscriber />
</OTSession>
Um segredo válido é uma sequência de caracteres com comprimento entre 8 e 256 caracteres.
Você pode alterar o segredo definindo o encryptionSecret atribuir um valor a uma propriedade do estado do React e alterar esse valor:
<OTSession
applicationId="api-key"
sessionId="session-id"
token="token"
encryptionSecret={this.state.encryptionSecret}>
>
<OTPublisher />
<OTSubscriber />
</OTSession>
Events and errors
Eventos e erros são essenciais para gerenciar o comportamento da criptografia orientada pelo usuário. A criptografia de ponta a ponta utiliza o modelo de segredo compartilhado: espera-se que todos os participantes da sessão utilizem o mesmo segredo para criptografar seus dados e descriptografar os dados dos demais participantes.
O OTSubscriber error() A função de retorno do manipulador de eventos é invocada quando o assinante não consegue decodificar a mídia de um fluxo devido a um segredo de criptografia incompatível (ou não definido):
<OTSubscriber
eventHandlers={{
error: event => {
// Show UI notification.
},
}}
>
O OTSession error() O callback do manipulador de eventos é acionado se o cliente tentar se conectar a uma sessão criptografada de ponta a ponta que tenha sido inicializada com um segredo de criptografia inválido (ou sem a especificação de um segredo de criptografia). Um segredo válido é uma string com 8 a 256 caracteres. Para proporcionar a melhor experiência ao usuário, o aplicativo deve detectar um segredo inválido fornecido pelo usuário antes de definir o OTSession encryptionSecret prop. No exemplo a seguir, uma sessão é inicializada com um segredo vazio (e, portanto, inválido), o que gera um erro ao tentar se conectar:
<OTSession
applicationId="api-key"
sessionId="session-id"
token="token"
encryptionSecret=""
eventHanders={{
error: event => {
// An error event is dispatched if you set an invalid encryption secret
}
}}
>
<OTPublisher />
<OTSubscriber />
</OTSession>