Hasura
قبل الدمج، نحتاج إلى نشر Casdoor محليًا.
ثم يمكننا تنفيذ صفحة تسجيل دخول تعتمد على Casdoor في تطبيقنا بسرعة باتباع الخطوات التالية.
تكوين تطبيق Casdoor
- إنشاء أو استخدام تطبيق Casdoor موجود.
- أضف رابط إعادة توجيه:
http://CASDOOR_HOSTNAME/login
- انسخ معرف العميل؛ سنحتاجه في الخطوات التالية.
أضف مستخدمًا في Casdoor
الآن لديك التطبيق، ولكن ليس مستخدمًا. هذا يعني أنك بحاجة إلى إنشاء مستخدم وتعيين الدور له.
اذهب إلى صفحة "المستخدمين" وانقر على "إضافة مستخدم" في الزاوية العلوية اليمنى. هذا يفتح صفحة جديدة حيث يمكنك إضافة المستخدم الجديد.
احفظ المستخدم بعد إضافة اسم المستخدم وإضافة المنظمة Hasura (التفاصيل الأخرى اختيارية).
الآن تحتاج إلى إعداد كلمة مرور لمستخدمك، والتي يمكنك القيام بها بالنقر على "إدارة كلمة المرور الخاصة بك".
اختر كلمة مرور لمستخدمك وقم بتأكيدها.
بناء تطبيق Hasura
ابدأ Hasura بواسطة Docker أو Hasura Cloud.
الآن قم بإنشاء جدول users
بالأعمدة التالية:
id
من نوع نص (المفتاح الأساسي)username
من نوع نص
راجع الصورة أدناه للمرجع.
الخطوة التالية هي إنشاء دور user
للتطبيق. يجب أن يكون المستخدمون قادرين على رؤية سجلاتهم فقط وليس سجلات الآخرين.
تكوين دور user
كما هو موضح في الصورة أدناه. For more information, read about configuring permission rules in Hasura.
بهذه الطريقة، لا يمكن للمستخدمين قراءة سجلات الآخرين. يمكنهم الوصول إلى بياناتهم فقط.
لأغراض الاختبار، أضف مستخدمًا وهميًا. هذا لضمان أنه عند استخدام رمز JWT، ترى تفاصيل مستخدمك فقط وليس تفاصيل المستخدمين الآخرين.
الآن تحتاج إلى ضبط JWT_SECRET
في Hasura.
تكوين Hasura مع Casdoor
في هذه الخطوة، تحتاج إلى إضافة HASURA_GRAPHQL_JWT_SECRET إلى Hasura.
للقيام بذلك، اذهب إلى ملف Hasura docker-compose.yaml ثم أضف HASURA_GRAPHQL_JWT_SECRET
الجديد كما يلي.
يجب أن يكون HASURA_GRAPHQL_JWT_SECRET
بالتنسيق التالي. تذكر تغيير <Casdoor endpoint>
إلى عنوان URL الخاص بـ Casdoor الخاص بك (مثل https://door.casdoor.com
)
HASURA_GRAPHQL_JWT_SECRET: '{"claims_map": {
"x-hasura-allowed-roles": {"path": "$.roles"},
"x-hasura-default-role": {"path": "$.roles[0]"},
"x-hasura-user-id": {"path": "$.id"}
},"jwk_url":"<Casdoor endpoint>/.well-known/jwks"}'
احفظ التغيير وأعد تحميل الدوكر.
استرجع الرمز المميز JWT
نظرًا لعدم وجود تنفيذ عميل، يمكنك الحصول على رمز الوصول الخاص بك عن طريق إجراء طلب بالرابط أدناه:
http://localhost:8000/login/oauth/authorize?client_id=<client ID>&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Flogin&scope=read&state=app-built-in<public certificate>>
غير client ID
إلى الهوية التي نسختها من قبل وأدخل الشهادة العامة لـ Casdoor، والتي يمكنك العثور عليها في صفحة شهادات Casdoor.
ثم أدخل اسم المستخدم وكلمة المرور التي أنشأتها لـ Hasura من قبل.
انقر على "تسجيل الدخول"
عد إلى صفحة Casdoor/Token.
ابحث عن اسم المستخدم الذي أدخلته من قبل، ثم انقر على "تعديل"
انسخ رمز الوصول
الآن يمكنك استخدام رمز الوصول لإجراء الطلب المصادق عليه. Hasura يعيد المستخدم المناسب بدلاً من إعادة جميع المستخدمين من قاعدة البيانات.