The project is in a healthy, maintained state
OmniAuth strategy for LINE Login with OpenID Connect email support
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 2.0
~> 3.0

Runtime

>= 2.3.0
 Project Readme

OmniAuth LINE Login

LINE Login 用の OmniAuth ストラテジーです。OpenID Connect の ID トークンからメールアドレスを取得できます。

kazasiki/omniauth-line のフォーク版で、LINE の /oauth2/v2.1/verify API による ID トークン検証機能を追加しています。

インストール

Gemfile に追加してください:

gem 'omniauth-line-login'

その後 bundle install を実行します。

使い方

# config/initializers/omniauth.rb または devise.rb
config.omniauth :line, ENV['LINE_CHANNEL_ID'], ENV['LINE_CHANNEL_SECRET'],
  scope: 'profile openid email'

重要: メールアドレスを含む ID トークンを取得するには email スコープが必要です。LINE Developers Console のチャネル設定で「メールアドレス取得権限」を申請してください。

omniauth-line との違い

オリジナルの omniauth-line は LINE の /v2/profile API のみを呼び出すため、メールアドレスを返しません。本フォークでは以下を追加しています:

  • ID トークン検証 — LINE の /oauth2/v2.1/verify API によるサーバーサイド検証
  • info[:email] — 検証済み ID トークンのクレームから取得したメールアドレス
  • info[:email_verified] — ID トークンの email_verified クレーム
  • extra[:id_token_claims] — デバッグや拡張用の ID トークンクレーム全体

Auth Hash

{
  uid: 'U02fa1e93...',
  info: {
    name: '表示名',
    image: 'https://profile.line-scdn.net/...',
    description: 'ステータスメッセージ',
    email: 'user@example.com',        # 追加
    email_verified: true               # 追加
  },
  extra: {
    raw_info: { ... },                 # LINE /v2/profile レスポンス
    id_token_claims: { ... }           # 追加: 検証済み ID トークンクレーム
  }
}

エラーハンドリング

ID トークンが存在しない場合(openid スコープ未指定など)や verify API がエラーを返した場合、emailemail_verifiednil になります。アプリケーション側で独自のメール収集フローにフォールバックできます。エラーは OmniAuth.logger で記録されます。

Nonce 検証について

本 gem では nonce 検証は行いません。nonce のバリデーションが必要な場合は、extra[:id_token_claims]['nonce'] から nonce を取得してコールバックコントローラーで検証してください。

ライセンス

MIT License。詳細は LICENSE を参照してください。

オリジナル: kazasiki/omniauth-line

リポジトリ: buferago/omniauth-line