こんにちは、
ここ数日、Lineとの連携でOpenIDがどのように機能するかを調べています:https://developers.line.biz/en/reference/line-login/ 。そのため、openid をインストールしました。
LineのOpenID Connectディスカバリードキュメントはここにあります:
https://access.line.me/.well-known/openid-configuration
openidプロファイルとメールのスコープを設定しました。
line.bizによると、メールアドレスはトークンに含まれています。そして、ログを見るとすべて順調です。
トークンから抽出したJWTファイルにメールアドレスが含まれていました。
例:
OIDCログ:検証済み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 をリクエストした後、メールアドレスは含まれていませんでした。含まれているのは名前とサブUserIdのみです。
lineのドキュメントのuserinfoを見ると、これは正しいようです。userinfoにはメールアドレスは含まれていません。
では、JWTレスポンスでメールアドレスを抽出するために何ができるでしょうか?クレームを試してみましたが、何か見落としている方法があるのでしょうか?それとも無駄なことでしょうか?目が回ってきました ![]()
ありがとうございます!
編集:
OpenIDプラグインのページ:openid を読みました。
ディスカバリードキュメントに userinfo_endpoint パラメータが含まれている場合、プラグインはそのエンドポイントを使用してユーザーメタデータを収集します。含まれていない場合、プラグインはトークンエンドポイントによって提供される id_token(JWT)からメタデータを抽出します。
したがって、解決策の1つは、プラグインにuserinfoエンドポイントを使用しないように指示することでしょうか?それは素晴らしいことです。しかし、それは可能でしょうか?