مواصفات مفاتيح API للمستخدم

هل تعتقد أنه سيكون من المنطقي تخطي نصوص detect-browser البرمجية عندما يستخدم شخص ما نقطة النهاية التالية:

https://sitename.com/user-api-key/new

من المرجح أن تتم إعادة توجيههم إلى هناك من تطبيق، لذا فإن التحقق مما إذا كانت محرك جافاسكريبت الخاص بهم على ما يرام لا معنى له ويمنع فقط المستخدمين الذين يرغبون في إنشاء مفتاح واجهة برمجة تطبيقات للاستخدام داخل التطبيق.

ولكن لا يزال يتعين عليك تسجيل الدخول لكي يعمل

نعم، هذه هي المشكلة، عندما يقوم user-api-key/new بإعادة توجيهك إلى صفحة تسجيل الدخول، فإنه يبدأ بعد ذلك في فحص متصفحك وبدلاً من السماح بتسجيل الدخول لإنشاء مفتاح واجهة برمجة التطبيقات، فإنه يشتكي من أن متصفحك قديم جدًا، ربما تخطي هذه الفحوصات إذا كان المستخدم هنا فقط لإنشاء مفتاح واجهة برمجة التطبيقات؟

نعم هذه هي المشكلة، إنها نوع من طلب طريقة تسجيل دخول بدون جافاسكريبت، وهذا معقد للغاية نظرًا للكم الهائل من خيارات المصادقة التي ندعمها وإجراءات منع البريد العشوائي.

إعجاب واحد (1)

لا يحتاج الأمر إلى أن يكون بدون جافاسكريبت، فنماذج تسجيل الدخول لا تحتاج حقًا إلى كل الأجراس والصفارات المستخدمة في أماكن أخرى على الموقع؟ على الأقل بالنسبة للمرور إلى auth/oauth2_basic لا يبدو أنه ضروري حيث يتم إنجاز 99٪ باستخدام رؤوس وإعادة توجيه. لدي تطبيق على SailfishOS يعمل بشكل جيد تمامًا مع ملفات .json وتمرير مفتاح api، وهو أمر رائع لأن المتصفح هناك يعتمد على esr78 firefox ويتم حظره في معظم مثيلات discourse، ولكن الطريقة الوحيدة للحصول على مفتاح api تبدو هي إدخال عنوان URL المكون من 200+ حرف يدويًا على سطح المكتب، ثم لصق الرمز الناتج مرة أخرى على الهاتف لفك تشفيره، وهو أمر سخيف للغاية.

تم تقسيم 5 مشاركات إلى موضوع جديد: يجب أن تستخدم مفاتيح واجهة برمجة تطبيقات المستخدم الحشو OAEP

مرحباً يا رفاق. كنت أستخدم مفاتيح واجهة برمجة تطبيقات المستخدم لتسجيل الدخول باستخدام عميل طرف ثالث. لقد كان يعمل بشكل جيد. ولكن الآن أحصل على رسالة خطأ في بعض المواقع
الرسالة هي

عفوًا
واجه البرنامج الذي يدعم منتدى المناقشة هذا مشكلة غير متوقعة. نعتذر عن الإزعاج.

تم تسجيل معلومات مفصلة حول الخطأ، وتم إنشاء إشعار تلقائي. سنلقي نظرة عليه.

لا يلزم اتخاذ أي إجراء آخر. ومع ذلك، إذا استمرت حالة الخطأ، يمكنك تقديم تفاصيل إضافية، بما في ذلك خطوات إعادة إنتاج الخطأ، عن طريق نشر موضوع مناقشة في فئة ملاحظات الموقع.

هل كان هناك تغيير في هذه الميزة في الإصدارات الأخيرة؟

هل تقصد “تسجيل الدخول”؟ أعتقد أن ربط discourse هو طريقة أفضل للقيام بذلك، على الرغم من أنني لا أعرف ما الذي تفعله بالفعل.

ستحتاج إلى النظر في السجلات للحصول على مزيد من المعلومات حول الخطأ.

أنا أقوم بتشغيل واجهة مستخدم مخصصة لذلك أحتاج إلى تنفيذ إجراءات نيابة عن المستخدم. لهذا الغرض، أستخدم مفاتيح واجهة برمجة تطبيقات المستخدم.

لهذا الغرض، أستخدم عنوان URL التالي:

https://discussion.fedoraproject.org/user-api-key/new?auth_redirect=discourse%3A%2F%2Fauth_redirect&application_name=DisCorkie&client_id=019695ed-8b7e-71b1-b55e-7efe8be1e9ae&scopes=read%2Cwrite%2Cnotifications%2Cpush%2Csession_info&push_url=https%3A%2F%2Fherxbktlunuawewahana.supabase.co%2Ffunctions%2Fv1%2Fdiscourse-webhook&public_key=-----BEGIN+PUBLIC+KEY-----%0AMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkD%2BNgNuAMv2ZSSR95V1B%0Afla9n3HbCPxAFB5%2B%2BitC9hlWEOfXZPToWAax5DuNUitzikLVWrldyRe%2BfgtS5F3Q%0AGvuzCtnFwyBNoIkuUva8uCzQ4K7T9RgnWIIfNsx2ONuk2GLhEeLUgb46F8VULbD3%0A4eExqEYoGK7tBxr3%2FnVYO%2FogOaibzhoZRiSh69gq6ptXWN9Pka%2Fb3%2Fp2hWF5MSwG%0AK39LiZKOzaga%2BsA0lA0BgdAw7rvnUBfpikL33mqtEJ6JDPhG5KIvBxY2m18T63cX%0AKakxrmZzWwibN%2Bzboe51Z49gtxJIiybaj5Yn7izPj39DKwiv5k%2FaSWFAe8FO0doQ%0AxVoh9qVhlvPq3DdLhcjC0djVNti3X%2BYC2bwUDSp%2BFhrLh%2BsYribCAp6P8TyZ5TZy%0Aw0WnDCatK%2FzPq53Fja2OUa5N43Zr4rSiyQMSdBaeOJwF33nOAHwztkDwOJvSh6fx%0Ag2mTR15Qe%2FRh6yY4fB610mcut%2BBU1oV4SEbxHYyroTaS06oO6k4EmvgJTiWK%2BVVC%0AfMGgFvoPXktKckK0q7xj32PiSTVlYURb27ap7yAHzFKePYkJdo0Sd3Jzghe1RdSg%0A4teQs4VecqIe%2Bv6p7BurFgwlKZyWN0n89u8%2BXihwwwOcVp1UHblqbl%2FKYi5%2BgK6O%0AyahsLRGMGllNIsqarYCZ9nkCAwEAAQ%3D%3D%0A-----END+PUBLIC+KEY-----%0A&nonce=-1646128802

حيث:

المعلمات
auth_redirect: discourse://auth_redirect
application_name: DisCorkie
client_id: 019695ed-8b7e-71b1-b55e-7efe8be1e9ae
scopes: read,write,notifications,push,session_info
push_url: https://herxbktlunuawewahana.supabase.co/functions/v1/discourse-webhook
public_key:
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkD+NgNuAMv2ZSSR95V1B
fla9n3HbCPxAFB5++itC9hlWEOfXZPToWAax5DuNUitzikLVWrldyRe+fgtS5F3Q
GvuzCtnFwyBNoIkuUva8uCzQ4K7T9RgnWIIfNsx2ONuk2GLhEeLUgb46F8VULbD3
4eExqEYoGK7tBxr3/nVYO/ogOaibzhoZRiSh69gq6ptXWN9Pka/b3/p2hWF5MSwG
K39LiZKOzaga+sA0lA0BgdAw7rvnUBfpikL33mqtEJ6JDPhG5KIvBxY2m18T63cX
KakxrmZzWwibN+zboe51Z49gtxJIiybaj5Yn7izPj39DKwiv5k/aSWFAe8FO0doQ
xVoh9qVhlvPq3DdLhcjC0djVNti3X+YC2bwUDSp+FhrLh+sYribCAp6P8TyZ5TZy
w0WnDCatK/zPq53Fja2OUa5N43Zr4rSiyQMSdBaeOJwF33nOAHwztkDwOJvSh6fx
g2mTR15Qe/Rh6yY4fB610mcut+BU1oV4SEbxHYyroTaS06oO6k4EmvgJTiWK+VVC
fMGgFvoPXktKckK0q7xj32PiSTVlYURb27ap7yAHzFKePYkJdo0Sd3Jzghe1RdSg
4teQs4VecqIe+v6p7BurFgwlKZyWN0n89u8+XihwwwOcVp1UHblqbl/KYi5+gK6O
yahsLRGMGllNIsqarYCZ9nkCAwEAAQ==
-----END PUBLIC KEY-----
nonce:-1646128802

يقوم بإعادة التوجيه إلى /login، ويقوم المتصفح باستدعاء /session/csrf بنجاح، ولا توجد مشكلة حتى الآن.

ومع ذلك، عندما يقوم المتصفح باستدعاء /auth/oauth2_basic، أحصل على خطأ 500.

الاستجابة هي رسالة الخطأ هذه ولا توجد معلومات إضافية.

يقوم Discourse hub بتدفق مصادقة مشابه ولكنه يعمل. هل هناك أي شيء فاتني؟

هل هناك أي شيء في /logs؟

إعجابَين (2)

بعد بعض التحقيقات، اكتشفت أن هذه المشكلة كانت تحدث لأنني كنت أستخدم مفاتيح بحجم 4096 بت. قمت بتغييرها إلى 2048 وبدأت تعمل بشكل صحيح.

هل حجم المفتاح هذا مطلوب؟ هل هو موثق في مكان ما؟

إعجابَين (2)