sbarbase
المحتويات

إعدادات تسجيل الدخول ومزوّدو OAuth

لكل بيئة إعدادات تسجيل دخول خاصة بها: إلى أين يرسل Auth الناس بعد تسجيل الدخول أو فتح رابط في البريد، ومن يستطيع إنشاء حساب، وبأي مزوّدين يستطيعون الدخول (Google وGitHub وApple وغيرها). اضبطها من اللوحة: افتح البيئة، ثم Sign-in settings، في قسم Sign-in. هذا القسم لا يظهر إلا لمالكي العميل ومديريه.

1. أعطِ الخادم عنوانه العام

يبني Auth روابط البريد وعناوين العودة من OAuth من العنوان الذي يصل منه الناس إلى الخادم. اضبطه مرة واحدة للتثبيت كله، ثم أعد التشغيل:

التثبيت المكان
Docker sudo SBARBASE_PUBLIC_URL=https://api.example.com deploy/compose.sh up. لا يقرأ المشغّل أي ملف .env، فأعطه القيمة نفسها مع كل up لاحق
systemd Environment=SBARBASE_PUBLIC_URL=https://api.example.com تحت [Service] في ملف إضافي مثل /etc/systemd/system/sbarbase.service.d/public-url.conf، ثم sudo systemctl daemon-reload && sudo systemctl restart sbarbase

ضع HTTPS في الواجهة أولًا (النشر على خادم). إلى أن تضبطه، تشير الروابط إلى http://localhost، وهذا لا يعمل إلا على الخادم نفسه.

2. حدّد إلى أين يصل الناس

3. أضف مزوّدًا

  1. تحت Sign-in providers انسخ عنوان العودة (callback). يشبه https://api.example.com/<environment>/auth/v1/callback.
  2. في إعدادات المطوّرين عند المزوّد (مثلًا GitHub ← Settings ← Developer settings ← OAuth Apps) أنشئ تطبيقًا والصق ذلك العنوان.
  3. ارجع إلى اللوحة، واختر المزوّد، ثم الصق Client ID وClient secret. يحتاج Keycloak أيضًا إلى عنوان خادمه، ويقبل Azure وGitLab وWorkOS عنوانًا إذا كنت تشغّل خادمك الخاص.
  4. اضغط Save and apply.

في تطبيقك، سجّل الدخول بالطريقة المعتادة:

await supabase.auth.signInWithOAuth({ provider: 'github', options: { redirectTo: 'https://app.example.com/welcome' } })

ماذا يحدث عند الحفظ

الحفظ يعيد إنشاء خدمة Auth لتلك البيئة بالإعدادات الجديدة، ولا يمس البيئات الأخرى. يبقى المستخدمون والجلسات وكل الصفوف، لأن Auth يحفظها في قاعدة بيانات البيئة. يعرض القسم Applying… ثم Applied. إذا لم يعمل Auth بالإعدادات الجديدة، تبقى خدمة Auth السابقة تعمل ويعرض القسم Not applied.

يُكتب Client secret في ملف خاص على الخادم ويُسلَّم إلى Auth تلك البيئة. لا تعرضه اللوحة مرة أخرى أبدًا: ترك حقل السر فارغًا يُبقي السر المحفوظ.

تصل روابط البريد وخطوات OAuth إلى Auth دون مفتاح API، كما في Supabase، لأن المتصفح الذي يتبع رابطًا لا يستطيع إرسال مفتاح. هذه الخطوات وحدها مفتوحة: verify وauthorize وcallback.

يحفظ CI مزوّد GitHub على جهاز نظيف مع كل تغيير، ويبدأ تسجيل دخول عبر GitHub ويفتح رابط بريد كما يفعل المتصفح، ويتحقق أن إنشاء حساب بالبريد ما زال يعمل بعد ذلك (الدليل). لا يتصل CI بأي مزوّد حقيقي، لذا جرّب أول تسجيل دخول حقيقي بمزوّدك بنفسك.

عدّل على GitHub