الانتقال إلى المحتوى الرئيسي
POST
المصادقة ميزة جديدة. تُقدَّم نقاط endpoint هذه من قِبل مُصدِر تطبيقك، مثل https://<name>.auth.didit.me، ولا تقبل أبداً مفتاح API الخاص بـ Didit.
رمز التحديث يعمل مرة واحدة فقط. إرسال رمز تحديث سبق استخدامه مرة أخرى يُلغي الجلسة بأكملها، لذا شغّل عملية تحديث واحدة في كل مرة لكل جلسة، واستبدل الرموز الثلاثة معاً. راجع رموز التحديث.

الجسم

واحد من المنحين الاثنين، يتم اختياره عبر grant_type. يقبل endpoint حقول كلا المنحين ويتحقق من صحة كل حقل يتلقاه، لذا فإن التجديد الذي يحمل أيضاً code_verifier غير صالح يحصل على خطأ في الحقل. أرسل حقول المنح الخاص بك فقط؛ أي حقل آخر يتلقى unknown_field.

grant_type
enum<string>
مطلوب
الخيارات المتاحة:
authorization_code
code
string
مطلوب

معامل الاستعلام code الذي تلقاه redirect_uri الخاص بك. تحقق من state للاستدعاء قبل استبداله.

Maximum string length: 128
مثال:

"Vb0bVt4CLlr8ZL0kE5mAxv8gS6R0rW3hYqC1pN7dJ2s"

code_verifier
string
مطلوب

متحقّق PKCE الذي كانت تجزئة S256 الخاصة به هي code_challenge لتسجيل الدخول.

Required string length: 43 - 128
Pattern: ^[A-Za-z0-9._~-]{43,128}$
مثال:

"dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk"

redirect_uri
string
مطلوب

عنوان redirect_uri الدقيق الذي بدأ به تسجيل الدخول. ويجب أن يظل أحد عناوين URI لإعادة التوجيه الخاصة بالتطبيق.

Maximum string length: 2048
مثال:

"https://app.example.com/auth/callback"

client_id
string

اختياري. عند إرساله، يجب أن يطابق معرّف التطبيق الخاص بك، وإلا سيفشل الطلب مع invalid_client.

Maximum string length: 64
مثال:

"7b0a6c2e-3f41-4c9a-8d55-1e2f3a4b5c6d"

scope
string

اختياري ومقبول من عملاء OpenID Connect القياسيين. لا يؤدي أبداً إلى توسيع نطاق ما منحه تسجيل الدخول.

Maximum string length: 512
مثال:

"openid email"

الاستجابة

رموز token جديدة للجلسة.

token لجلسة واحدة. استبدل الثلاثة معًا بعد التحديث.

access_token
string
مطلوب

ES256 JWT برأس typ: at+jwt. أرسله بتنسيق Authorization: Bearer <access_token>. المطالبات: AccessTokenClaims.

مثال:

"eyJhbGciOiJFUzI1NiIsImtpZCI6ImtfOHNKMmRRdlgwbkxyNVRmWWIzSGtQdyIsInR5cCI6ImF0K2p3dCJ9.eyJpc3MiOiJodHRwczovL3lvdXItYXBwLmF1dGguZGlkaXQubWUiLCJhdWQiOiI3YjBhNmMyZS0zZjQxLTRjOWEtOGQ1NS0xZTJmM2E0YjVjNmQiLCJzdWIiOiIxYzlkOGI4OC0xYmZmLTQzZDEtYWQ3YS04OGIyYmMwMDI0ZTkiLCJzaWQiOiJjOWFiZjZjYy0yZDY0LTRiZjItYjMxZS1hNGQwOWEwNzBhYjEiLCJqdGkiOiJSZ3F1NzE3OWUtbGhKMGJ2VmVELVlnIiwiaWF0IjoxNzkyMjMzNjc0LCJleHAiOjE3OTIyMzM5NzQsInZlbmRvcl9kYXRhIjoidXNlci00MiIsIm9yZyI6bnVsbCwidmVyaWZpZWQiOnt9LCJhbXIiOlsicGFzc3dvcmQiXSwiYWN0IjpudWxsLCJjbGllbnRfaWQiOiI3YjBhNmMyZS0zZjQxLTRjOWEtOGQ1NS0xZTJmM2E0YjVjNmQifQ.AxrqN8Pm-Op-3OayZk8HcvlFQZhozRiOvQ0SgQsGgrz4UNeJlUEeSlq9B8WcYUuM8naRaY5kQt_TUofnsYcyYQ"

id_token
string
مطلوب

ES256 JWT برأس typ: JWT، ليقرأ تطبيقك من قام بتسجيل الدخول. لا ترسله أبداً كـ token للوصول. المطالبات: IDTokenClaims.

مثال:

"eyJhbGciOiJFUzI1NiIsImtpZCI6ImtfOHNKMmRRdlgwbkxyNVRmWWIzSGtQdyIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL3lvdXItYXBwLmF1dGguZGlkaXQubWUiLCJhdWQiOiI3YjBhNmMyZS0zZjQxLTRjOWEtOGQ1NS0xZTJmM2E0YjVjNmQiLCJzdWIiOiIxYzlkOGI4OC0xYmZmLTQzZDEtYWQ3YS04OGIyYmMwMDI0ZTkiLCJzaWQiOiJjOWFiZjZjYy0yZDY0LTRiZjItYjMxZS1hNGQwOWEwNzBhYjEiLCJqdGkiOiJNTHRPNHM4SHItQnJrcDd2NTlPV0Z3IiwiaWF0IjoxNzkyMjMzNjc0LCJleHAiOjE3OTIyMzM5NzQsInZlbmRvcl9kYXRhIjoidXNlci00MiIsIm9yZyI6bnVsbCwidmVyaWZpZWQiOnt9LCJhbXIiOlsicGFzc3dvcmQiXSwiYWN0IjpudWxsLCJhdXRoX3RpbWUiOjE3OTIyMzM2NzQsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJlbWFpbCI6InBlcnNvbkBleGFtcGxlLmNvbSIsIm5vbmNlIjoibi0wUzZfV3pBMk1qIn0.avhfDFp_aUV5_1ssYzwDcIA7H6Waf19P0bn5GCg25FhLIZBGIlwc8HiUPGj1j26r21OkP4FQnS_jM1Ho3dHtKQ"

refresh_token
string
مطلوب

للاستخدام لمرة واحدة. وهو صالح حتى انتهاء الجلسة، وتُرجع كل عملية تحديث رابطاً جديداً.

مثال:

"N4yZTl6y24YKYq77X_SOrBn1q2Lit81WBQMOay7dq_IVfTnxyY8ZGcJk-6-fcmWW"

token_type
enum<string>
مطلوب
الخيارات المتاحة:
Bearer
expires_in
integer
مطلوب

عدد الثواني حتى انتهاء صلاحية رمز الوصول: بحد أقصى 300، وتكون أقل عندما تنتهي الجلسة في وقت أقرب.

النطاق المطلوب: 0 <= x <= 300
مثال:

299

session_id
string<uuid>
مطلوب

الجلسة التي تنتمي إليها هذه الـ token، وهي نفس قيمة المطالبة sid.

مثال:

"c9abf6cc-2d64-4bf2-b31e-a4d09a070ab1"

آخر تعديل في ٧ نوفمبر ٢٠٢٦