DeHubAbrir DeHub

DeHub › Documentación

Iniciar sesión con DeHub — OAuth y tokens de mini apps

Hay dos formas de saber quién es un usuario de DeHub. Dentro de una mini app, pide al SDK un token firmado. En cualquier otra web o app, usa OAuth estándar. En ambos casos, el id del usuario es la dirección de su billetera de DeHub, el mismo id que se usa en todo DeHub.

Dentro de una mini app

// In your mini app
const { token } = await dehub.auth.getToken();
await fetch('/api/session', { method: 'POST', headers: { Authorization: `Bearer ${token}` } });
// On your server (Node, any JOSE library works)
import { createRemoteJWKSet, jwtVerify } from 'jose';

const JWKS = createRemoteJWKSet(
  new URL('https://aigxuutjaqsywioxjefr.supabase.co/functions/v1/miniapp-auth'),
);

const { payload } = await jwtVerify(token, JWKS, {
  issuer: 'https://riftn.com',
  audience: 'tipjar.example.com', // your domain
});
const wallet = payload.sub; // the user's DeHub wallet, lowercase

El token es un JWT ES256 que dura una hora. DeHub lo dirige al dominio que realmente cargó, así que un token creado para una app nunca puede usarse en otra. El SDK lo guarda en caché y pide uno nuevo cuando está a punto de caducar.

En cualquier web o app (OAuth)

DeHub habla la API OAuth de Mastodon, así que sirve cualquier biblioteca OAuth 2.0, y también cualquier biblioteca cliente de Mastodon. PKCE está disponible y recomendado.

1. Registra tu app una vez.

curl -X POST https://riftn.com/api/v1/apps \
  -H 'Content-Type: application/json' \
  -d '{"client_name":"Tip Jar","redirect_uris":"https://tipjar.example.com/callback","scopes":"profile","website":"https://tipjar.example.com"}'

Guarda el client_id y el client_secret que devuelve. Solo se muestran una vez.

2. Envía al usuario a DeHub para que apruebe.

https://riftn.com/oauth/authorize
  ?response_type=code
  &client_id=YOUR_CLIENT_ID
  &redirect_uri=https://tipjar.example.com/callback
  &scope=profile
  &state=RANDOM_STATE
  &code_challenge=PKCE_CHALLENGE
  &code_challenge_method=S256

3. Cambia el código por un token en tu servidor.

curl -X POST https://riftn.com/oauth/token \
  -d grant_type=authorization_code \
  -d code=CODE_FROM_REDIRECT \
  -d client_id=YOUR_CLIENT_ID \
  -d client_secret=YOUR_CLIENT_SECRET \
  -d redirect_uri=https://tipjar.example.com/callback \
  -d code_verifier=PKCE_VERIFIER

4. Lee quién inició sesión.

curl https://riftn.com/api/v1/accounts/verify_credentials \
  -H 'Authorization: Bearer ACCESS_TOKEN'

En la respuesta, id es la dirección de la billetera del usuario. acct es su usuario, además de display_name, avatar y el url.

Permisos

PermisoPermite
profileSolo saber quién inició sesión. Úsalo para el login.
readLeer el timeline, los seguidos y las notificaciones del usuario. Acótalo con subpermisos como read:accounts.
writePublicar, responder, dar me gusta y subir archivos en nombre del usuario, por ejemplo write:statuses o write:media.
followSeguir, silenciar y bloquear.
pushSuscripciones a notificaciones push web.

Pide solo lo que necesitas. La gente ve la lista en la pantalla de aprobación y puede revocar cualquier app en sus ajustes de DeHub.

Agentes de IA

Los asistentes de IA inician sesión a través del servidor MCP de DeHub en https://riftn.com/mcp, que tiene su propio flujo OAuth con registro dinámico de clientes. Consulta Conectar.

Blog de DeHub · Inicio de dehub.io