よろしくお願い致します。
Deviseを利用して、ChatWorkアカウントからOAuth認証によるログイン機能を
実装したいと思っていますが、認証画面で「許可する」を選ぶと、
次のページでエラーが発生してしまいます(画像をご参照ください)
Gemfile
gem 'devise' gem 'oauth' gem 'omniauth-chatwork'
config/initializers/devise.rb
Devise.setup do |config| config.omniauth :chatwork, ENV['CHATWORK_APP_ID'], ENV['CHATWORK_APP_SECRET'], name: :chatwork end
routes.rb
root to: 'home#login' devise_for :users, controllers: { omniauth_callbacks: "users/omniauth_callbacks" }
app/models/
class User < ApplicationRecord devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :omniauthable, omniauth_providers: %i(chatwork) def self.find_for_oauth(auth) user = User.find_by(email: auth.info.email) unless user user = User.create(email: auth.info.email, provider: auth.provider, uid: auth.uid, password: Devise.friendly_token[0, 20]) end user end end
app/controllers/users/omniauth_callbacks.rb
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController def chatwork @user = User.find_for_oauth(request.env['omniauth.auth']) if @user.persisted? flash[:notice] = I18n.t('devise.omniauth_callbacks.success', kind: :chatwork) sign_in_and_redirect @user, event: :authentication else session["devise.#{provider}_data"] = request.env['omniauth.auth'] redirect_to new_user_registration_url end end end
お手数ですが、原因のお分かりの方ご教示いただけないでしょうか。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。