OpenID مع line.biz - البريد الإلكتروني في JWT ، مفقود في userinfo

مرحباً،
في اليومين الماضيين كنت أحاول فهم كيفية عمل OpenID بالاقتران مع Line: https://developers.line.biz/en/reference/line-login/ ، لذلك قمت بتثبيت openid

مستند اكتشاف OpenID Connect لـ Line موجود هنا:
https://access.line.me/.well-known/openid-configuration

لقد قمت بإعداد نطاقات openid profile و email.

وفقًا لـ line.biz، فإن عنوان البريد الإلكتروني موجود في الرمز المميز (token). وكل شيء يبدو جيدًا حتى الآن عندما أنظر إلى سجلاتي.
لقد حصلت على عنوان البريد الإلكتروني في ملف JWT المستخرج من الرمز المميز (token)
مثل:
سجل OIDC: تم التحقق من JWT —
iss: https://access.line.me
sub: Uf3156a0081c563144b3
aud: ‘1657458025’
exp: 1662826967
iat: 1662823367
nonce: f5930aa4c2bd1b3807d
amr:

ولكن بعد طلب https://api.line.me/oauth2/v2.1/userinfo
لم يتم تضمين عنوان البريد الإلكتروني. فقط الاسم ومعرف المستخدم الفرعي (sub UserId).

نظرة على مستندات Line تحت userinfo تبدو صحيحة. لا يتضمن userinfo البريد الإلكتروني.

إذًا، ماذا يمكنني أن أفعل لاستخراج عنوان البريد الإلكتروني في استجابة JWT؟ لقد حاولت استخدام المطالبات (claims) وربما هناك طريقة للحصول عليها لم أكتشفها؟ أم أن هذا سيذهب سدى؟ هذا يجعلني أشعر بالدوار :slight_smile:

شكرا لك!

تعديل:
قرأت على صفحة إضافة OpenID: openid
إذا تضمن مستند الاكتشاف معلمة userinfo_endpoint، فسيستخدم المكون الإضافي هذا لجمع بيانات تعريف المستخدم. إذا لم يكن الأمر كذلك، فسيقوم المكون الإضافي باستخراج بيانات التعريف من id_token (ملف JWT) المقدم من نقطة نهاية الرمز المميز (token endpoint).

لذلك، أحد الحلول هو إخبار المكون الإضافي بعدم استخدام نقطة نهاية userinfo؟ سيكون ذلك رائعًا. ولكن كيف يمكنني فعل ذلك؟

حسنًا، لقد فهمت. قد لا يكون هذا هو الحل الأفضل، ولكن نظرًا لأن المكون الإضافي يستخدم بيانات JWT إذا لم يكن نقطة نهاية معلومات المستخدم متاحة، فقد قمت بعمل نسخة من المكون الإضافي على GitHub وقمت بتعيين:\n\ndiscourse-openid-connect/lib/omniauth_open_id_connect.rb\n\nالسطر 18 - الخيار: use_userinfo، إلى false بدلاً من true.\n\nهذا كل شيء.\n\n سيكون من الجيد وجود خيار في إعدادات المكون الإضافي للاختيار بين استجابة معلومات المستخدم أو JWT.

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

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.