質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

OAuth 2.0

OAuth 2.0(Open Authorization 2.0)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

OpenID

OpenIDは、様々なWebサイトで 1つのID情報のみで認証が可能にするサービスです。

Q&A

0回答

1061閲覧

LINEアカウントでのソーシャルログインで「No verification key available」のエラー

pecchan

総合スコア555

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

OAuth 2.0

OAuth 2.0(Open Authorization 2.0)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

OpenID

OpenIDは、様々なWebサイトで 1つのID情報のみで認証が可能にするサービスです。

0グッド

0クリップ

投稿2021/11/03 00:55

rails6.1.0

自サービスにLINEアカウントによるソーシャルログインを追加中です。

アカウントを新規作成するため、ログイン時はSNSからアプリ側へ「email」を渡す必要があります。
Google、Facebook、Twitterなどは、Omniauth認証でeamilを取得出来ますがLINEでは取得できませんでした。

LINEでemailを取得しようと思ったら、Omniauthではなく「OpenID connect」を使うそうです。
RailsでOpenID connectを用いたLINEログイン

LINE Developerのページから「OpenIDコネクト」を申請しました。
「適用」と表示されてるので申請は通ったようです。

同ページ、権限の箇所も「プロフィール OPENID_CONNECT OC_EMAIL」
となっているため取得する準備は整ったようです。

あとはコード側ですが、以下を参考にしました。
omniauth-linegemのomniauth/strategies/line.rbオーバーライドすれば良いとありました。

Rails】LINEログインでemailを取得する

config\initializers\omniauth\strategies\line.rb

ruby

1require 'omniauth-oauth2' 2require 'jwt' 3 4module OmniAuth 5 module Strategies 6 class Line < OmniAuth::Strategies::OAuth2 7 option :scope, 'email profile openid' 8 9 info do 10 { 11 name: raw_info['displayName'], 12 image: raw_info['pictureUrl'], 13 description: raw_info['statusMessage'], 14 email: JWT.decode(access_token.params['id_token'], ENV['client_secret']).first['email'] 15 } 16 end 17 end 18 end 19end

こちらを追加しLINEログインすると以下のエラーになりました。

JWT::DecodeError No verification key available

イメージ説明

Context has changed to: config/initializers/omniauth/strategies/line.rb:14:in `block in &lt;class:Line&gt;' >>

###試したこと
該当行をコメントアウトしても同じエラーでした。
1つずつコメントアウトしても変わらないため最終的にline.rbを空にしてみました。

ruby

1require 'omniauth-oauth2' 2require 'jwt' 3 4module OmniAuth 5 module Strategies 6 class Line < OmniAuth::Strategies::OAuth2 7 8 end 9 end 10end

この状態でもエラーメッセージは変わりませんでした。
イメージ説明

JWT::DecodeError No verification key available
Context has changed to: config/initializers/omniauth/strategies/line.rb:14:in `block in &lt;class:Line&gt;' >>

###分からないこと
デコード対象がないのになぜデコードエラー??
中身を空にして14行目はないのになぜline.rb:14でエラー??

ここで行き詰まってしまいました。

分かる方教えていただけると幸いです。
宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問