مزود مصادقة مفتوح المصدر
أضف تسجيل الدخول الآمن وإدارة الجلسة إلى تطبيقاتك. تتوفر حزم SDK للغات الشائعة وأطر العمل الأمامية، مثل Node.js وGo وPython وReact.js وReact Native وVanilla JS وما إلى ذلك.
تم تحسين بنية Supertokens لإضافة مصادقة آمنة للمستخدمين دون المساس بتجربة المستخدم والمطور
ثلاث وحدات بناء لهندسة SuperTokens
- Frontend SDK: يدير الرموز المميزة للجلسة ويعرض عناصر واجهة مستخدم تسجيل الدخول
- Backend SDK: يوفر واجهات برمجة التطبيقات للتسجيل وتسجيل الدخول والخروج وتحديث الجلسة وما إلى ذلك. ستتحدث الواجهة الأمامية الخاصة بك مع واجهات برمجة التطبيقات هذه
- SuperTokens Core: خدمة HTTP لمنطق المصادقة الأساسي وعمليات قاعدة البيانات. يتم استخدام هذه الخدمة بواسطة Backend SDK
سمات
- تسجيل الدخول بدون كلمة مرور
- تسجيل الدخول الاجتماعي
- البريد الإلكتروني كلمة المرور تسجيل الدخول
- تسجيل الدخول بكلمة مرور الهاتف
- إدارة الجلسة
- المصادقة متعددة العوامل
- دعم متعدد الإيجارات / المؤسسة (Enterprise SSO)
- أدوار المستخدم
- مصادقة الخدمات المصغرة
يتعلم أكثر
- ما هو SuperTokens؟
- فلسفة
- الميزات + التطبيق التجريبي
- التوثيق
- بنيان
- ☕ لماذا جافا؟
- ⌨️ لوحة تحكم إدارة المستخدم
- SuperTokens مقابل الآخرين
- البناء من المصدر
- مجتمع
- المساهمة
- رخصة
إذا كنت ترغب في مشروعنا، من فضلك؟ هذا المستودع! للحصول على تعليقات، لا تتردد في الانضمام إلى Discord، أو إنشاء مشكلة في هذا الريبو
ما هو SuperTokens؟
SuperTokens هو بديل مفتوح النواة لموفري تسجيل الدخول الخاصين مثل Auth0 أو AWS Cognito. نحن مختلفون لأننا نقدم:
- مفتوح المصدر: يمكن استخدام SuperTokens مجانًا إلى الأبد، دون حدود لعدد المستخدمين.
- النشر المحلي بحيث يمكنك التحكم بنسبة 100% في بيانات المستخدم الخاصة بك، باستخدام قاعدة البيانات الخاصة بك.
- حل شامل مع تسجيل الدخول والاشتراكات وإدارة المستخدم والجلسة، دون كل تعقيدات بروتوكولات OAuth.
- سهولة التنفيذ وأمان أعلى.
- القابلية للتوسعة: يمكن لأي شخص المساهمة وتحسين SuperTokens!
فلسفة
تؤثر المصادقة بشكل مباشر على تجربة المستخدم وتجربة التطوير وأمان أي تطبيق. نحن نؤمن بأن الحلول الحالية لا يمكنها تحسين جميع "الركائز" الثلاثة، مما يؤدي إلى قيام العديد من التطبيقات بتمرير مصادقة خاصة بها يدويًا. ولا يؤدي هذا إلى مشكلات أمنية فحسب، بل يؤدي أيضًا إلى استنزاف كبير للوقت.
نريد تغيير ذلك - نعتقد أن الطريقة الوحيدة هي توفير حل يتمتع بالمستوى المناسب من التجريد ويمنحك أقصى قدر من التحكم، ويكون آمنًا وسهل الاستخدام - تمامًا كما لو قمت ببنائه بنفسك، من الصفر (مطروحًا منه الوقت للتعلم والبناء والصيانة).
نحن نؤمن أيضًا بمبدأ الحد الأدنى من تقييد البائع. إن التحكم الكامل في بيانات المستخدم الخاص بك يعني أنه يمكنك التبديل بعيدًا عن SuperTokens دون إجبار المستخدمين الحاليين على تسجيل الخروج، أو إعادة تعيين كلمات المرور الخاصة بهم، أو في أسوأ الحالات، التسجيل مرة أخرى.
انقر هنا لرؤية التطبيق التجريبي.
- يرجى زيارة موقعنا على الانترنت لرؤية قائمة الميزات.
- نريد أن نجعل الميزات منفصلة قدر الإمكان. هذا يعني أنه يمكنك استخدام SuperTokens لتسجيل الدخول فقط، أو لإدارة الجلسة فقط، أو كليهما. في الواقع، نحن نقدم أيضًا عمليات تكامل لإدارة الجلسة مع موفري تسجيل الدخول الآخرين مثل Auth0.
التوثيق
يمكن رؤية المستندات على موقعنا.
يوجد المزيد من المعلومات حول SuperTokens في قسم GitHub wiki.
بنيان
يرجى العثور على مخطط الهندسة المعمارية هنا
لمزيد من المعلومات، يرجى زيارة قسم ويكي جيثب.
☕ لماذا جافا؟
- ✅ على الرغم من أن تشغيل Java قد يبدو صعبًا، إلا أننا نوفر JDK مع الصورة الثنائية/صورة عامل الإرساء عند توزيعها. وهذا يجعل تشغيل SuperTokens تمامًا مثل تشغيل أي خدمة HTTP صغيرة أخرى.
- ✅ تتمتع Java بنظام بيئي ناضج جدًا. وهذا يعني أن مكتبات الطرف الثالث قد تم اختبارها في المعركة.
- ✅ يضمن نظام الكتابة القوي في Java عددًا أقل من الأخطاء وسهولة الصيانة. وهذا مهم بشكل خاص عندما يُتوقع من العديد من الأشخاص العمل في نفس المشروع.
- ✅ يشعر فريقنا براحة أكبر مع Java كما أن توظيف مطوري Java الرائعين أمر سهل نسبيًا أيضًا.
- ✅ أحد أكبر الانتقادات الموجهة إلى Java هو استخدام الذاكرة. لدينا ثلاثة حلول لهذا:
- العملية الأكثر شيوعًا المتعلقة بالمصادقة هي التحقق من الجلسة - يحدث هذا داخل SDK للواجهة الخلفية (العقدة، python، Go) دون الاتصال بنواة Java. لذلك، يمكن لمثيل واحد من النواة التعامل مع عدة عشرات الآلاف من المستخدمين بسهولة إلى حد ما.
- لقد اخترنا تبعياتنا بعناية. على سبيل المثال: نستخدم خادم Tomcat المضمن بدلاً من إطار عمل الويب عالي المستوى.
- نخطط أيضًا لاستخدام GraalVM في المستقبل وهذا يمكن أن يقلل من استخدام الذاكرة بنسبة 95%!
- ✅ إذا كنت بحاجة إلى أي تعديلات على واجهات برمجة تطبيقات المصادقة، فيجب إجراء ذلك على مستوى SDK للواجهة الخلفية (على سبيل المثال Node وGolang وPython..). لذلك نادرًا ما تحتاج إلى التعديل/العمل مباشرة باستخدام كود Java في هذا الريبو.
⌨️ لوحة تحكم إدارة المستخدم
قم بالإشراف على المستخدمين لديك من خلال لوحة تحكم إدارة مستخدم SuperTokens
قائمة المستخدمين
قم بإدراج جميع المستخدمين الذين قاموا بالتسجيل في تطبيقك.
إدارة المستخدمين
إدارة المستخدمين عن طريق تعديل أو حذف جلساتهم وبياناتهم الوصفية والأدوار ومعلومات الحساب.
SuperTokens مقابل الآخرين
يرجى الاطلاع على مخطط المقارنة التفصيلي على موقعنا
البناء من المصدر
يرجى الاطلاع على ويكي لدينا للحصول على التعليمات.
مجتمع
إذا كنت تعتقد أن هذا مشروع يمكنك استخدامه في المستقبل، من فضلك؟ هذا المستودع!
المساهمون (عبر جميع مستودعات SuperTokens)
ريشاب بودار | أدفيت رويا | بهوميل سارفايا | جويل كوتينيو |
راكيش اب | مفسر كازي | نيمي شاه | روهيت بهاتيا |
مادو ماهاديفان | ايدار نجمانوف | ارناف ديوان | نككسسك ن |
اللورد تشاديوالا | لويز سواريس | سوديبتو غوش | فابريسيو20 |
metalmonkey | فيدهيانشو جاين | دومينيكو لوتشياني | إنزو باتروف |
إلويز إيسوتييه | Ákos Resch | تشوتو تشودري | توماس هوراسيك |
سام باوش | أليكسي تيليندوس | جوس فون | chenkaiC4 |
ماريك دولوفسكي | بيوشه بوتوريا | إريك دوبرتين | كايل دودسون |
رالف لورانس | كريستوفر كابيتش | هانزيوسوف | ميهالي لينجيل |
سيرينو أو. ليجوتوم الثالث | ناديلاس | فاسيلي كاتانا | جاي ميستري |
جاكوب مارشال | com.micetromba | أوليغ فدوفينكو | سيدارت |
xuatz | يوواي بورن | رونيت باندا | أنوغراه سينغال |
جيريمي إيستهام | عساف اليعقوبي | ساتفيك تشاكرافارثي | أوليفييه بيشون |
سيدهانت فارما | com.renyijiu | اشعياء توماسون | أوتساف بارنوال |
سوراب جاتنيكار | أليشر أيتواروف | سيمون كيلبيرج فالستروم | أريب خان |
نيكولاس دودفيلد | قديا | لوكاس كنوث | ملفين هيلز |
مات موراي | كليو ريبرت | دانييل بوروفوي | كرزيستوف فيتكوفسكي |
ليهوتشيكي زولتان | فيراج كانوادي | أنوراغ سريفاستافا |
المساهمة
الرجاء مراجعة ملف CONTRIBUTING.md للحصول على الإرشادات.
رخصة
© 2020-2023 SuperTokens Inc والمساهمين فيها. جميع الحقوق محفوظة.
يتم ترخيص أجزاء من هذا البرنامج على النحو التالي:
- كل المحتوى الموجود ضمن الدليل "ee/" لهذا المستودع، إذا كان هذا الدليل موجودًا، مرخص بموجب الترخيص المحدد في "ee/LICENSE.md".
- جميع مكونات الطرف الثالث المدمجة في برنامج SuperTokens مرخصة بموجب الترخيص الأصلي المقدم من مالك المكون المعمول به.
- المحتوى خارج الدلائل أو القيود المذكورة أعلاه متاح بموجب ترخيص "Apache 2.0" كما هو محدد في ملف المستوى "LICENSE.md"