Здравствуйте,
в последние несколько дней я пытаюсь разобраться, как работает OpenID в связке с Line: https://developers.line.biz/en/reference/line-login/, поэтому я установил openid.
Документ обнаружения OpenID Connect для Line находится здесь:
https://access.line.me/.well-known/openid-configuration
Я настроил области доступа (scopes) для профиля OpenID и электронной почты.
Согласно документации line.biz, адрес электронной почты содержится в токене. И пока всё выглядит нормально, если посмотреть в логи. Я получил адрес электронной почты в файле JWT, извлечённом из токена, например:
OIDC Log: Verified JWT—
iss: https://access.line.me
sub: Uf3156a0081c563144b3
aud: ‘1657458025’
exp: 1662826967
iat: 1662823367
nonce: f5930aa4c2bd1b3807d
amr:
- linesso
email: example@example.com
Однако после запроса к https://api.line.me/oauth2/v2.1/userinfo
адрес электронной почты не включается. Возвращаются только имя и sub UserId.
Просмотр документации Line в разделе userinfo показывает, что это верно. userinfo не включает электронную почту.
Так что же я могу сделать, чтобы извлечь адрес электронной почты в ответе JWT? Я пробовал использовать claims, и, возможно, есть способ получить его, который я упускаю? Или это тупик? От этого кружится голова ![]()
Спасибо!
Редактирование:
Я прочитал на странице плагина OpenID: openid
Если документ обнаружения включает параметр userinfo_endpoint, то плагин будет использовать его для сбора метаданных пользователя. Если нет, плагин извлечёт метаданные из id_token (JWT), предоставленного конечной точкой токена.
Так что одним из решений было бы сказать плагину не использовать конечную точку userinfo? Это было бы здорово. Но могу ли я это сделать?