DeHubDeHub openen

DeHub › Documentatie

Inloggen met DeHub — OAuth en mini-app-tokens

Er zijn twee manieren om te weten wie een DeHub-gebruiker is. Vraag in een mini-app de SDK om een ondertekend token. Gebruik op elke andere website of app standaard OAuth. In beide gevallen is het id van de gebruiker het adres van hun DeHub-wallet, hetzelfde id dat overal op DeHub wordt gebruikt.

In een 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

Het token is een ES256-JWT dat een uur geldig is. DeHub richt het aan het domein dat het echt heeft geladen, dus een token voor de ene app werkt nooit voor een andere. De SDK bewaart het en haalt een nieuw op als het bijna verloopt.

Op elke website of app (OAuth)

DeHub spreekt de OAuth-API van Mastodon, dus elke OAuth 2.0-bibliotheek werkt, net als elke Mastodon-clientbibliotheek. PKCE wordt ondersteund en aangeraden.

1. Registreer je app één keer.

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"}'

Bewaar de client_id en de client_secret die je terugkrijgt. Ze worden maar één keer getoond.

2. Stuur de gebruiker naar DeHub om goed te keuren.

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. Ruil de code in voor een token op je server.

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. Lees wie er is ingelogd.

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

In het antwoord is id het wallet-adres van de gebruiker. acct is hun gebruikersnaam, plus display_name, avatar en de url.

Scopes

ScopeGeeft toegang tot
profileAlleen lezen wie er is ingelogd. Gebruik dit om in te loggen.
readHet lezen van de tijdlijn, gevolgde accounts en meldingen van de gebruiker. Beperk het met sub-scopes zoals read:accounts.
writePlaatsen, reageren, liken en uploaden namens de gebruiker, bijvoorbeeld write:statuses of write:media.
followVolgen, dempen en blokkeren.
pushWebpush-abonnementen.

Vraag alleen wat je nodig hebt. Mensen zien de lijst op het goedkeuringsscherm en kunnen elke app intrekken in hun DeHub-instellingen.

AI-agents

AI-assistenten loggen in via de DeHub MCP-server op https://riftn.com/mcp, die een eigen OAuth-flow heeft met dynamische clientregistratie. Zie Verbinden.

DeHub-blog · Startpagina van dehub.io