التخطي إلى المحتوى الرئيسي

OAuth مخصص

ملاحظة

Casdoor يدعم مزودين مخصصين. ومع ذلك، يجب أن يتبع المزودون المخصصون العملية القياسية لـ OAuth ذو الثلاث أرجل، ويجب أن تتوافق قيم العودة لـ Token URL و UserInfo URL مع التنسيق المحدد من قبل Casdoor.

لإنشاء مزود مخصص جديد، انتقل إلى صفحة المزود في Casdoor، واختر "مخصص" في حقل النوع. ثم ستحتاج إلى ملء Client ID، Client Secret، Auth URL، Scope،Token URL، UserInfo URL، و Favicon.

image-20220418100744005

  • Auth URL هو عنوان صفحة تسجيل الدخول OAuth لمزود الخدمة المخصص.

    إذا قمت بملء https://door.casdoor.com/login/oauth/authorize كـ Auth URL، فعندما يقوم المستخدم بتسجيل الدخول باستخدام هذا المزود المخصص، سيتم أولاً إعادة توجيه المتصفح إلى

    https://door.casdoor.com/login/oauth/authorize?client_id={ClientID}&redirect_uri=https://{your-casdoor-hostname}/callback&state={State_generated_by_Casdoor}&response_type=code&scope={Scope} 

    بعد اكتمال التفويض، يجب أن يقوم مزود الخدمة المخصص بإعادة التوجيه إلى

    https://{your-casdoor-hostname}/callback?code={code}

    بعد هذه الخطوة، سيتعرف Casdoor على معامل الكود في العنوان URL.

  • Scope هو معامل النطاق الذي يتم حمله عند الوصول إلى Auth URL، ويجب أن تملأه وفقًا لمتطلبات مزود الخدمة المخصص.

  • Token URL هو نقطة نهاية API للحصول على accessToken.

    بمجرد حصولك على الكود في الخطوة السابقة، يجب على Casdoor استخدامه للحصول على accessToken.

    إذا قمت بملء https://door.casdoor.com/api/login/oauth/access_token كـ Token URL، فإن Casdoor سيصل إليه باستخدام الأمر التالي

    curl -X POST -u "{ClientID}:{ClientSecret}" --data-binary "code={code}&grant_type=authorization_code&redirect_uri=https://{your-casdoor-hostname}/callback" https://door.casdoor.com/api/login/oauth/access_token

    يجب أن يعيد مزود الخدمة المخصص على الأقل المعلومات التالية:

    {
    "access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6Ixxxxxxxxxxxxxx",
    "refresh_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6xxxxxxxxxxxxxx",
    "token_type": "Bearer",
    "expires_in": 10080,
    "scope": "openid profile email"
    }
  • UserInfo URL هو نقطة نهاية API للحصول على معلومات المستخدم عبر accessToken.

    إذا قمت بملء https://door.casdoor.com/api/userinfo كـ UserInfo URL، فإن Casdoor سيصل إليه باستخدام الأمر التالي

    curl -X GET -H "Authorization: Bearer {accessToken}" https://door.casdoor.com/api/userinfo

    يجب أن يعيد مزود الخدمة المخصص على الأقل المعلومات التالية:

    {
    "name": "admin",
    "preferred_username": "Admin",
    "email": "admin@example.com",
    "picture": "https://casbin.org/img/casbin.svg"
    }
  • Favicon هو عنوان URL لشعار مزود الخدمة المخصص.

    سيتم عرض هذا الشعار على صفحة تسجيل الدخول Casdoor مع مزودي تسجيل الدخول الآخرين من الجهات الخارجية.