Logo Lanfrica

yohannesgk/fayda-esignet-skill

Domaine:

digital infrastructure

Type de record:

software
Créateur:
yoh
Hôte:
Claude Code / Codex / Agent Skills / and many more agents skill for integrating Fayda Digital ID (VeriFayda 2.0 / eSignet) — Ethiopia's national ID — into apps. Covers the OIDC+PKCE flow, JWT client assertions, KYC claims, and error handling, with Node.js and Python reference code. # fayda-esignet A Claude Code / Agent Skills skill for integrating **Fayda Digital ID (VeriFayda 2.0 / eSignet)** — Ethiopia's national ID system — into web and mobile apps. Drop this into Claude's skills folder and it teaches Claude the full OAuth 2.0 / OpenID Connect (PKCE) flow that eSignet uses, including the parts that are specific to Fayda: JWT-signed client assertions instead of a client secret, KYC-style claim requests, multi-language (English/Amharic) claim decoding, and eSignet's specific error codes. ## What it covers - **Authorization Code Flow with PKCE** — generating `code_verifier`/`code_challenge`, building the authorization URL, `acr_values` (OTP / biometrics), `claims_locales`, and the `claims` object for requesting specific KYC fields as essential/optional. - **Client assertion JWTs** — signing a JWT with the app's private key (RS256) for token exchange, since eSignet doesn't use a plain `client_secret`. - **Token exchange & userinfo retrieval** — the full request/response shape, plus decoding the JWT-encoded userinfo response. - **Multi-language claims** — why userinfo keys change shape (`name` → `name#en` / `name#am`) when more than one locale is requested. - **Error handling** — what `invalid_request`, `invalid_transaction`, and `invalid_assertion` actually mean and how to debug each. - **Working reference code** in both Node.js/Express (`jose`) and Python/Flask (`authlib`). ## Install ### Claude Code CLI Personal (available in every project): ```bash mkdir -p ~/.claude/skills git clone github.com /fayda-esignet ~/.claude/skills/fayda-esignet ``` Project-local (travels with a specific repo — commit it): ```bash mkdir -p .claude/skills git clone github.com /fayda-esignet .claude/skills/fayda-esignet ``` Or download the `.skill` zip and unzip it into either location: ```bash unzip fayda-esignet.skill -d ~/.claude/skills/ ``` Start (or restart) `claude` and it's available — Claude will reach for it automatically when yo …

Languages