브라우저 에이전트
타입 지정됨기기 신호를 수집하고 visitor ID와 request ID를 반환합니다.
- 리포트 크기
- 약 1KB
- 설치
- 스크립트 태그 또는 npm
- Visitor ID
- 보통 incognito에서도 유지됨
<script src="https://zenocdn.net/agent.js"></script>
<script>
const agent = FingerprintAgent.start({ endpoint: 'https://zenocdn.net', publicKey: 'pk_...' })
// Once the user logs in, hand the request ID to your server. A capped or
// failed identification sends none, and your server challenges the login.
agent
.get({ externalId: user.id })
.then(result => verifyOnServer(result.capped ? undefined : result.requestId))
.catch(() => verifyOnServer(undefined))
</script>// The quickstart's checks: no request ID, a failed read, an old or another
// user's event, then the starting bands.
if (!requestId) {
return askForSecondFactor()
}
const response = await fetch(`https://api.zeno.id/events/${encodeURIComponent(requestId)}`, {
headers: { 'Auth-API-Key': process.env.FP_SECRET_KEY! },
})
if (!response.ok) {
throw new Error(`Reading the event failed: ${(await response.json()).error}`)
}
const event = await response.json()
const fresh = Date.now() - new Date(event.createdAt).getTime() < 5 * 60_000
if (!fresh || event.externalId !== user.id) {
return askForSecondFactor()
}
if (event.bot === 'bad' || event.riskScore >= 15) {
// Refuse, or send it to review.
} else if (event.riskScore >= 9) {
return askForSecondFactor()
}curl "https://api.zeno.id/events/1792578564800.yU4Ety" \
-H "Auth-API-Key: sk_..."import { AgentError, start } from 'zeno-id'
// Once per page load, outside any component.
const agent = start({ endpoint: 'https://zenocdn.net', publicKey: 'pk_...' })
let requestId: string | undefined
try {
const result = await agent.get({ externalId: user.id })
requestId = result.capped ? undefined : result.requestId
} catch (error) {
if (!(error instanceof AgentError)) throw error
}처음이신가요? 시작하기: 주요 용어 빠른 시작 코드 없이 케이스 검토하기
기기 신호를 수집하고 visitor ID와 request ID를 반환합니다.
secret key로 이벤트와 방문자를 읽고, 검색하고, 삭제하세요.
봇, VPN, Tor, incognito, 변조 및 가상 머신을 위험 점수와 함께 탐지.
첫 식별부터 사용자 삭제까지.