Compare a localização de um início de sessão com a localização anteriormente armazenada
Uma grande alteração na localização derivada do IP num curto intervalo pode justificar revisão. POST /v1/risk/check compara a estimativa de localização atual de um utilizador com o ponto anteriormente armazenado e devolve a distância, o tempo decorrido, a velocidade implícita e uma classificação de risco — contacte-nos para confirmar a disponibilidade antes de integrar, uma vez que a aplicação independente de um plano de risco e a preparação do checkout ainda não foram verificadas.
Disponibilidade
Este endpoint partilha o mesmo middleware de chave secreta que a pesquisa de IP, que verifica apenas se uma chave é uma chave secreta — não aplica de forma independente uma família de planos de risco separada, e o preço de risco pré-configurado não tem um preço ativo definido. Confirme connosco os termos e a disponibilidade atuais antes de depender disto em produção.
Entrada e utilização da chave secreta
Envie um corpo JSON com userId, ip, e um booleano commit opcional (predefinição true) para POST /v1/risk/check com uma chave secreta através de Authorization: Bearer YOUR_SECRET_KEY — apenas servidor-a-servidor, nunca a partir de um navegador.
A primeira observação
A primeira verificação de sempre de um utilizador não tem localização anterior com que comparar: devolve risk: "low", impossibleTravel: false, valores nulos de distância/velocidade/tempo decorrido, e um previousLocation nulo, e — se commit não for false — armazena esta observação como a nova base de referência.
Observações subsequentes
As verificações posteriores comparam a distância em grande círculo entre o ponto anterior e o atual com o tempo decorrido, para obter uma velocidade implícita. Abaixo de 500 km/h, o resultado é "low"; entre 500 e 900 km/h, "medium" (um voo de longo curso real pode aterrar perto deste limite); acima de 900 km/h, "high" e impossibleTravel: true.
O sinalizador commit
commit é true por predefinição. Defina-o como false para uma pré-verificação especulativa — por exemplo, antes de uma decisão de autenticação reforçada — que lê a base de referência armazenada sem a alterar, para que uma verificação legítima não corrompa o histórico real de localização do utilizador.
Localizações em falta
Se ip não puder ser resolvido para uma latitude/longitude, o endpoint devolve um 422 em vez de uma estimativa de baixa confiança.
Retenção e eliminação
A v1 armazena exatamente uma localização por par (a sua conta, userId) — a observação confirmada mais recente — sem expiração automática e sem um endpoint de eliminação atualmente disponível; persiste até à próxima verificação confirmada a sobrepor. Uma vez que armazena uma localização associada a userId para além de um único ciclo de pedido/resposta, a utilização deste endpoint torna o Watch-IP um subcontratante (processor) desses dados em seu nome — consulte o Anexo de Tratamento de Dados.
Falsos positivos
A v1 não tem supressão consciente de VPN ou centro de dados, pelo que a alternância rápida de VPN ou a rotação comum de IP de rede móvel podem produzir um resultado elevado. Trate cada classificação como um sinal em bruto para o seu próprio processo de revisão, não como um veredito final.
Campos de resposta
- risk
- low, medium, ou high, a partir dos limiares de velocidade implícita acima.
- impossibleTravel
- Forma abreviada booleana para risk: "high".
- distanceKm, impliedSpeedKmh, elapsedSeconds
- A distância e o tempo entre a observação anterior e a atual, e a velocidade que isso implica. Nulo na primeira verificação de sempre de um utilizador.
- previousLocation
- country, latitude, longitude, e observedAt para a base de referência armazenada antes desta chamada. Nulo na primeira verificação de sempre de um utilizador.
- currentLocation
- country, latitude, e longitude resolvidos a partir do ip que forneceu nesta chamada.
Pré-verifique, depois confirme
cURL no back-end
# Verificação especulativa antes da sua própria decisão de autenticação — não altera a base de referência.
curl https://api.watch-ip.com/v1/risk/check \
-H "Authorization: Bearer YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"userId": "u_123", "ip": "203.0.113.1", "commit": false}'
# Depois de a sua própria verificação de palavra-passe/2FA ser bem-sucedida, confirme a nova base de referência.
curl https://api.watch-ip.com/v1/risk/check \
-H "Authorization: Bearer YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"userId": "u_123", "ip": "203.0.113.1"}'commit é true por predefinição, pelo que a segunda chamada acima atualiza a base de referência armazenada; a primeira, com commit: false, não o faz.
Perguntas frequentes
O que acontece na primeira verificação?
Devolve sempre risk: "low" com um previousLocation nulo — ainda não há nada com que comparar a localização atual.
Suprime saltos de VPN?
Não. A v1 não tem supressão consciente de VPN ou centro de dados, pelo que mudar de rede ou de saídas VPN entre inícios de sessão pode, por si só, produzir um resultado médio ou alto.
Um resultado alto é prova de comprometimento?
Não. É um cálculo em bruto de distância sobre tempo. Combine-o com as suas próprias evidências de autenticação, em vez de o tratar como um veredito autónomo.
Posso evitar atualizar a base de referência?
Sim — passe commit: false. A verificação continua a ser executada e devolve um resultado, mas a localização armazenada não é substituída.
Durante quanto tempo é retida a localização anterior?
Indefinidamente, até à próxima verificação confirmada para esse userId a sobrepor — não existe expiração automática nem endpoint de eliminação na implementação atual.
Páginas relacionadas
- Referência de POST /v1/risk/checkReferência completa de campos para o endpoint de deteção de viagem impossível.
- Deteção de risco de início de sessãoUtilize alterações de localização derivadas do IP para informar a revisão de início de sessão, assim que o acesso à verificação de risco for confirmado.
- ContactoContacte o suporte ou a equipa comercial do Watch-IP.
- Falsos positivos de viagem impossívelPor que uma pontuação alta de viagem impossível não é prova de tomada de controlo de conta.