تسجيل الدخول عبر DeHub — OAuth ورموز التطبيقات المصغّرة
هناك طريقتان لمعرفة هوية مستخدم DeHub. داخل التطبيق المصغّر، اطلب من SDK رمزًا موقّعًا. وفي أي موقع أو تطبيق آخر، استخدم OAuth القياسي. في الحالتين يكون معرّف المستخدم هو عنوان محفظته على DeHub، وهو المعرّف نفسه المستخدم في كل مكان على DeHub.
داخل تطبيق مصغّر
// 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
الرمز هو JWT من نوع ES256 صالح لمدة ساعة. يوجّهه DeHub إلى النطاق الذي حمّله فعلًا، لذا لا يمكن أبدًا استخدام رمز صُنع لتطبيق في تطبيق آخر. تحفظه SDK مؤقتًا وتجلب رمزًا جديدًا عندما يقترب من الانتهاء.
في أي موقع أو تطبيق (OAuth)
يتحدث DeHub بواجهة OAuth الخاصة بـ Mastodon، لذا تعمل أي مكتبة OAuth 2.0، وكذلك كل مكتبات عملاء Mastodon. يدعم PKCE ويُنصح به.
1. سجّل تطبيقك مرة واحدة.
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"}'
احتفظ بـ client_id و client_secret اللذين يعيدهما. لا يظهران إلا مرة واحدة.
2. أرسل المستخدم إلى DeHub ليوافق.
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. استبدل الرمز المؤقت برمز وصول على خادمك.
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. اقرأ من سجّل الدخول.
curl https://riftn.com/api/v1/accounts/verify_credentials \
-H 'Authorization: Bearer ACCESS_TOKEN'
في الإجابة، الحقل id هو عنوان محفظة المستخدم. acct هو اسم المستخدم، إضافة إلى display_name, avatar و url.
النطاقات
| النطاق | يسمح بـ |
|---|---|
profile | قراءة من سجّل الدخول فقط. استخدمه لتسجيل الدخول. |
read | قراءة الخط الزمني للمستخدم ومن يتابعهم وإشعاراته. ضيّقه بنطاقات فرعية مثل read:accounts. |
write | النشر والرد والإعجاب والرفع نيابة عن المستخدم، مثلًا write:statuses أو write:media. |
follow | المتابعة والكتم والحظر. |
push | اشتراكات إشعارات الويب الفورية. |
اطلب ما تحتاجه فقط. يرى الناس القائمة في شاشة الموافقة ويمكنهم إلغاء أي تطبيق من إعدادات DeHub.
وكلاء الذكاء الاصطناعي
يسجّل مساعدو الذكاء الاصطناعي الدخول عبر خادم MCP الخاص بـ DeHub على https://riftn.com/mcp، الذي يدير تدفّق OAuth خاصًا به مع تسجيل ديناميكي للعملاء. راجع توصيل.
افتح DeHub