curl -X POST 'https://verification.didit.me/v3/events/sdk-token/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"vendor_data": "user-42",
"allowed_event_categories": ["auth", "session", "gameplay"],
"ttl_seconds": 900,
"max_uses": 1000,
"bind_to_origin": "https://app.example.com"
}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.monitoring_events.create_sdk_token(
vendor_data="user-42",
allowed_event_categories=["auth", "session", "gameplay"],
ttl_seconds=900,
max_uses=1000,
bind_to_origin="https://app.example.com",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.monitoringEvents.createSdkToken({
vendor_data: "user-42",
allowed_event_categories: ["auth", "session", "gameplay"],
ttl_seconds: 900,
max_uses: 1000,
bind_to_origin: "https://app.example.com",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.MonitoringEvents.CreateSDKToken(ctx, didit.MonitoringEventsCreateSDKTokenParams{
VendorData: "user-42",
AllowedEventCategories: didit.Some([]didit.MonitoringEventsCreateSDKTokenParamsAllowedEventCategories{"auth", "session", "gameplay"}),
TTLSeconds: didit.Int(900),
MaxUses: didit.Int(1000),
BindToOrigin: didit.String("https://app.example.com"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.util.List;
import me.didit.Didit;
import me.didit.types.MonitoringEventsCreateSdkTokenParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.monitoringEvents().createSdkToken(MonitoringEventsCreateSdkTokenParams.builder()
.vendorData("user-42")
.allowedEventCategories(List.of(MonitoringEventsCreateSdkTokenParams.AllowedEventCategories.of("auth"), MonitoringEventsCreateSdkTokenParams.AllowedEventCategories.of("session"), MonitoringEventsCreateSdkTokenParams.AllowedEventCategories.of("gameplay")))
.ttlSeconds(900L)
.maxUses(1000L)
.bindToOrigin("https://app.example.com")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->monitoringEvents->createSdkToken([
'vendor_data' => 'user-42',
'allowed_event_categories' => ['auth', 'session', 'gameplay'],
'ttl_seconds' => 900,
'max_uses' => 1000,
'bind_to_origin' => 'https://app.example.com',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.monitoring_events.create_sdk_token(
vendor_data: "user-42",
allowed_event_categories: ["auth", "session", "gameplay"],
ttl_seconds: 900,
max_uses: 1000,
bind_to_origin: "https://app.example.com"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.MonitoringEvents.CreateSdkTokenAsync(new MonitoringEventsCreateSdkTokenParams
{
VendorData = "user-42",
AllowedEventCategories = new MonitoringEventsCreateSdkTokenParamsAllowedEventCategories[] { "auth", "session", "gameplay" },
TtlSeconds = 900,
MaxUses = 1000,
BindToOrigin = "https://app.example.com",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"monitoring_token": "q7ZtR2xKp9VbN4mWc8LdH1sYfJ3gT6uEaQ0oPiXzBkC",
"expires_at": "2026-10-17T09:30:02.481000Z",
"allowed_event_categories": [
"auth",
"session",
"gameplay"
],
"max_uses": 1000,
"bind_to_origin": "https://app.example.com"
}모니터링 SDK 토큰 발급 API
API 키를 노출하지 않고 앱에서 모니터링 이벤트를 전송할 수 있도록, 한 주체에 묶인 단기 기기 자격 증명을 발급합니다. Didit 제공.
curl -X POST 'https://verification.didit.me/v3/events/sdk-token/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"vendor_data": "user-42",
"allowed_event_categories": ["auth", "session", "gameplay"],
"ttl_seconds": 900,
"max_uses": 1000,
"bind_to_origin": "https://app.example.com"
}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.monitoring_events.create_sdk_token(
vendor_data="user-42",
allowed_event_categories=["auth", "session", "gameplay"],
ttl_seconds=900,
max_uses=1000,
bind_to_origin="https://app.example.com",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.monitoringEvents.createSdkToken({
vendor_data: "user-42",
allowed_event_categories: ["auth", "session", "gameplay"],
ttl_seconds: 900,
max_uses: 1000,
bind_to_origin: "https://app.example.com",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.MonitoringEvents.CreateSDKToken(ctx, didit.MonitoringEventsCreateSDKTokenParams{
VendorData: "user-42",
AllowedEventCategories: didit.Some([]didit.MonitoringEventsCreateSDKTokenParamsAllowedEventCategories{"auth", "session", "gameplay"}),
TTLSeconds: didit.Int(900),
MaxUses: didit.Int(1000),
BindToOrigin: didit.String("https://app.example.com"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.util.List;
import me.didit.Didit;
import me.didit.types.MonitoringEventsCreateSdkTokenParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.monitoringEvents().createSdkToken(MonitoringEventsCreateSdkTokenParams.builder()
.vendorData("user-42")
.allowedEventCategories(List.of(MonitoringEventsCreateSdkTokenParams.AllowedEventCategories.of("auth"), MonitoringEventsCreateSdkTokenParams.AllowedEventCategories.of("session"), MonitoringEventsCreateSdkTokenParams.AllowedEventCategories.of("gameplay")))
.ttlSeconds(900L)
.maxUses(1000L)
.bindToOrigin("https://app.example.com")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->monitoringEvents->createSdkToken([
'vendor_data' => 'user-42',
'allowed_event_categories' => ['auth', 'session', 'gameplay'],
'ttl_seconds' => 900,
'max_uses' => 1000,
'bind_to_origin' => 'https://app.example.com',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.monitoring_events.create_sdk_token(
vendor_data: "user-42",
allowed_event_categories: ["auth", "session", "gameplay"],
ttl_seconds: 900,
max_uses: 1000,
bind_to_origin: "https://app.example.com"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.MonitoringEvents.CreateSdkTokenAsync(new MonitoringEventsCreateSdkTokenParams
{
VendorData = "user-42",
AllowedEventCategories = new MonitoringEventsCreateSdkTokenParamsAllowedEventCategories[] { "auth", "session", "gameplay" },
TtlSeconds = 900,
MaxUses = 1000,
BindToOrigin = "https://app.example.com",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"monitoring_token": "q7ZtR2xKp9VbN4mWc8LdH1sYfJ3gT6uEaQ0oPiXzBkC",
"expires_at": "2026-10-17T09:30:02.481000Z",
"allowed_event_categories": [
"auth",
"session",
"gameplay"
],
"max_uses": 1000,
"bind_to_origin": "https://app.example.com"
}인증
Business Console의 Developers -> API keys에서 발급받은 귀하 애플리케이션의 API 키입니다. 기본 키는 전체 접근 권한을 갖습니다. 이름이 지정된 키는 리소스별 none, read, write 범위로 권한을 제한할 수 있으며 특정 워크플로나 승인된 세션, IP 주소 목록, 만료일 등으로 제한할 수도 있습니다. 401은 키가 잘못되었거나 폐기되었거나 만료되었음을 의미합니다. 403은 키가 전송되지 않았거나, 키에 해당 리소스나 작업에 대한 접근 권한이 없거나, 요청이 허용된 IP 목록 외부 주소에서 발생했음을 의미합니다. 세션 경로에서의 404는 해당 세션이 키의 허용 워크플로 또는 상태 범위를 벗어났음을 의미합니다. 미디어 접근 권한이 없는 키는 이미지, 비디오, PDF URL을 null로 수신하며, 세션 write 권한이 없는 키는 세션 링크와 token을 null로 수신합니다. https://docs.didit.me/console/api-keys 를 참고하십시오.
본문
camelCase 별칭이 허용됩니다: vendorData, entityType, allowedEventCategories, ttlSeconds, maxUses, bindToOrigin.
이 자격 증명으로 제출된 모든 이벤트가 속한 대상에 대한 귀하의 id입니다.
1 - 255company는 기업 대상을 바인딩합니다. 다른 값(기본값 individual)은 개인을 바인딩합니다.
32자격 증명이 제출할 수 있는 카테고리. 생략하거나 []를 전송하면 모든 카테고리를 허용합니다.
auth, session, gameplay, bonus, affiliate, payment, dispute, security, responsible_gambling, custom 자격 증명의 유효 기간(초 단위)입니다.
60 <= x <= 86400자격 증명이 제출할 수 있는 이벤트 수입니다(배치는 이벤트당 1회 사용량을 차감합니다). 유효 기간 내에 제한을 두지 않으려면 null을 전송하십시오.
x >= 1설정된 경우 모든 디바이스 요청의 브라우저 Origin 헤더가 이 값과 정확히 일치해야 합니다. Origin이 없는 요청은 거부됩니다.
255응답
자격 증명이 발급되었습니다. 앱에 monitoring_token을 전달하고 expires_at까지 비밀로 취급하세요.
기기 자격 증명(43자의 URL-safe token)입니다. X-Monitoring-Token 헤더에 담아 전송하세요.
자격 증명이 더 이상 허용되지 않는 시점입니다.
자격 증명이 제출할 수 있는 카테고리. []는 모든 카테고리를 의미합니다.
auth, session, gameplay, bonus, affiliate, payment, dispute, security, responsible_gambling, custom 자격 증명의 이벤트 예산입니다. null은 한도가 없음을 의미합니다.
자격 증명이 바인딩된 오리진(Origin) 또는 null입니다.