Token导航 LogoToken导航TokenDH.com
开发敏感数据github未标认证来源可访问许可证需确认审计提醒

didit-email-verification迪迪特电子邮件验证

Agent Skill

didit-email-verification 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

1,094

周安装

47

GitHub Stars

12

下载量

384
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:didit-email-verification(迪迪特电子邮件验证)
来源仓库:https://github.com/didit-protocol/skills
仓库路径:skills/didit-email-verification
安装命令:
npx skills add https://github.com/didit-protocol/skills --skill didit-email-verification
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/didit-protocol/skills --skill didit-email-verification

简介

didit-email-verification 通过一次性验证码完成邮箱验证。

  • 支持检测泄露邮箱与临时邮箱提供商识别。
  • 验证码有效期 5 分钟,最多尝试 3 次。
  • 24 小时内最多请求 2 次重发。didit-email-verification 属于开发类 Skill,可作为该场景下的辅助能力补充。
  • 必须先后调用 Send 与 Check 接口。

SKILL.md

Didit Email Verification API

Overview

Two-step email verification via one-time code:

  1. Send a verification code to an email address
  2. Check the code the user provides

Key constraints:

  • Code expires after 5 minutes
  • Maximum 3 verification attempts per code (then must resend)
  • Maximum 2 resend requests within 24 hours
  • You must call Send before Check — Check returns "Expired or Not Found" otherwise

Capabilities: Detects breached emails (via known data breaches), disposable/temporary email providers, and undeliverable addresses. Supports fraud signals for risk scoring.

API Reference: Send Code | Check Code Feature Guide: https://docs.didit.me/core-technology/email-verification/overview


Authentication

All requests require an API key via the x-api-key header.

How to obtain: Didit Business Console → API & Webhooks → Copy API key, or via programmatic registration (see below).

x-api-key: your_api_key_here
401 = API key missing or invalid. 403 = key lacks permissions or insufficient credits.

Getting Started (No Account Yet?)

If you don't have a Didit API key, create one in 2 API calls:

  1. Register: POST https://apx.didit.me/auth/v2/programmatic/register/ with {"email": "you@gmail.com", "password": "MyStr0ng!Pass"}
  2. Check email for a 6-character OTP code
  3. Verify: POST https://apx.didit.me/auth/v2/programmatic/verify-email/ with {"email": "you@gmail.com", "code": "A3K9F2"} → response includes api_key

To add credits: GET /v3/billing/balance/ to check, POST /v3/billing/top-up/ with {"amount_in_dollars": 50} for a Stripe checkout link.

See the didit-verification-management skill for full platform management (workflows, sessions, users, billing).


Step 1: Send Email Code

Sends a one-time verification code to the specified email address.

Request

POST https://verification.didit.me/v3/email/send/

Headers

HeaderValueRequired
x-api-keyYour API keyYes
Content-Typeapplication/jsonYes

Body (JSON)

ParameterTypeRequiredDefaultConstraintsDescription
emailstringYesValid emailEmail address to send code to
options.code_sizeintegerNo6Min: 4, Max: 8Length of the verification code
options.alphanumeric_codebooleanNofalsetrue = A-Z + 0-9 (case-insensitive)
options.localestringNoMax 5 charsLocale for email template. e.g. en-US
signals.ipstringNoIPv4 or IPv6User's IP for fraud detection
signals.device_idstringNoMax 255 charsUnique device identifier
signals.user_agentstringNoMax 512 charsBrowser/client user agent
vendor_datastringNoYour identifier for session tracking

Example

import requests

response = requests.post(
    "https://verification.didit.me/v3/email/send/",
    headers={"x-api-key": "YOUR_API_KEY", "Content-Type": "application/json"},
    json={
        "email": "user@example.com",
        "options": {"code_size": 6},
        "signals": {"ip": "203.0.113.42"},
        "vendor_data": "session-abc-123",
    },
)
print(response.status_code, response.json())
const response = await fetch("https://verification.didit.me/v3/email/send/", {
  method: "POST",
  headers: { "x-api-key": "YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    email: "user@example.com",
    options: { code_size: 6 },
    signals: { ip: "203.0.113.42" },
  }),
});

Response (200 OK)

{
  "request_id": "e39cb057-92fc-4b59-b84e-02fec29a0f24",
  "status": "Success",
  "reason": null
}

Status Values & Handling

StatusMeaningAction
"Success"Code sentProceed — wait for user to provide code, then call Check
"Retry"Temporary delivery issueWait a few seconds and retry Send (max 2 retries)
"Undeliverable"Email cannot receive mailInform user the email is invalid or cannot receive messages

Error Responses

CodeMeaningAction
400Invalid request body or emailCheck email format and parameter constraints
401Invalid or missing API keyVerify x-api-key header
403Insufficient credits/permissionsCheck credits in Business Console
429Rate limitedBack off and retry after indicated period

Step 2: Check Email Code

Verifies the code the user received. Must be called after a successful Send. Optionally auto-declines risky emails.

Request

POST https://verification.didit.me/v3/email/check/

Headers

HeaderValueRequired
x-api-keyYour API keyYes
Content-Typeapplication/jsonYes

Body (JSON)

ParameterTypeRequiredDefaultValuesDescription
emailstringYesValid emailSame email used in Step 1
codestringYes4-8 charsThe code the user received
duplicated_email_actionstringNo"NO_ACTION""NO_ACTION" / "DECLINE"Decline if email already verified by another user
breached_email_actionstringNo"NO_ACTION""NO_ACTION" / "DECLINE"Decline if email found in data breaches
disposable_email_actionstringNo"NO_ACTION""NO_ACTION" / "DECLINE"Decline if email is disposable/temporary
undeliverable_email_actionstringNo"NO_ACTION""NO_ACTION" / "DECLINE"Decline if email is undeliverable
Policy note: When an action is "DECLINE", verification is rejected even if the code is correct. The email.* fields are still populated so you can inspect why.

Example

response = requests.post(
    "https://verification.didit.me/v3/email/check/",
    headers={"x-api-key": "YOUR_API_KEY", "Content-Type": "application/json"},
    json={
        "email": "user@example.com",
        "code": "123456",
        "breached_email_action": "DECLINE",
        "disposable_email_action": "DECLINE",
    },
)
const response = await fetch("https://verification.didit.me/v3/email/check/", {
  method: "POST",
  headers: { "x-api-key": "YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    email: "user@example.com",
    code: "123456",
    breached_email_action: "DECLINE",
    disposable_email_action: "DECLINE",
  }),
});

Response (200 OK)

{
  "request_id": "e39cb057-92fc-4b59-b84e-02fec29a0f24",
  "status": "Approved",
  "message": "The verification code is correct.",
  "email": {
    "status": "Approved",
    "email": "user@example.com",
    "is_breached": false,
    "breaches": [],
    "is_disposable": false,
    "is_undeliverable": false,
    "verification_attempts": 1,
    "verified_at": "2025-09-15T17:36:19.963451Z",
    "warnings": [],
    "lifecycle": [
      {"type": "EMAIL_VERIFICATION_MESSAGE_SENT", "timestamp": "...", "fee": 0.03},
      {"type": "VALID_CODE_ENTERED", "timestamp": "...", "fee": 0}
    ]
  },
  "created_at": "2025-09-15T17:36:19.703719+00:00"
}

Status Values & Handling

StatusMeaningAction
"Approved"Code correct, no policy violationsEmail verified — proceed with your flow
"Failed"Code incorrectAsk user to re-enter. After 3 failures, resend a new code
"Declined"Code correct but policy violationInform user. Check email.warnings for reason
"Expired or Not Found"No pending codeCode expired (>5 min) or Send was never called. Resend

Error Responses

CodeMeaningAction
400Invalid request bodyCheck email and code format
401Invalid or missing API keyVerify x-api-key header
403Insufficient credits/permissionsCheck credits in Business Console
404Code expired or not foundResend a new code via Step 1

Response Field Reference

email Object

FieldTypeDescription
statusstring"Approved", "Failed", "Declined"
emailstringThe email address verified
is_breachedbooleanFound in known data breaches
breachesarrayBreach details: {name, domain, breach_date, data_classes, breach_emails_count}
is_disposablebooleanFrom a disposable/temporary provider
is_undeliverablebooleanCannot receive email
verification_attemptsintegerNumber of check attempts (max 3)
verified_atstringISO 8601 timestamp when verified (null if not)
warningsarrayRisk warnings: {risk, log_type, short_description, long_description}
lifecyclearrayEvent log: {type, timestamp, fee}

Warning Tags

TagDescriptionAuto-Decline
EMAIL_CODE_ATTEMPTS_EXCEEDEDMax code entry attempts exceededYes
EMAIL_IN_BLOCKLISTEmail is in blocklistYes
UNDELIVERABLE_EMAIL_DETECTEDEmail cannot be deliveredYes
BREACHED_EMAIL_DETECTEDFound in known data breachesConfigurable
DISPOSABLE_EMAIL_DETECTEDDisposable/temporary providerConfigurable
DUPLICATED_EMAILAlready verified by another userConfigurable

Warning severity levels: error (critical), warning (requires attention), information (informational).


Common Workflows

Basic Email Verification

1. POST /v3/email/send/   → {"email": "user@example.com"}
2. Wait for user to provide the code
3. POST /v3/email/check/  → {"email": "user@example.com", "code": "123456"}
4. If "Approved"            → email is verified
   If "Failed"              → ask user to retry (up to 3 attempts)
   If "Expired or Not Found"→ go back to step 1

Strict Security Verification

1. POST /v3/email/send/   → include signals.ip, signals.device_id, signals.user_agent
2. Wait for user to provide the code
3. POST /v3/email/check/  → set all *_action fields to "DECLINE"
4. If "Approved"  → safe to proceed
   If "Declined" → check email.warnings for reason, block or warn user

Utility Scripts

verify_email.py: Send and check email verification codes from the command line.

# Requires: pip install requests
export DIDIT_API_KEY="your_api_key"

python scripts/verify_email.py send user@example.com
python scripts/verify_email.py check user@example.com 123456 --decline-breached --decline-disposable

Can also be imported as a library:

from scripts.verify_email import send_code, check_code

send_result = send_code("user@example.com")
check_result = check_code("user@example.com", "123456", decline_breached=True)

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

37.73%
按下载量换算145

Claude

29.43%
按下载量换算113

Cursor

19.1%
按下载量换算73

Gemini CLI

9.19%
按下载量换算35

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills