首页 > 解决方案 > OmniAuth::Strategies::OAuth2::CallbackError 发生

问题描述

我正在做一个 Rails 项目,但omniauth-linkedin-oauth2不会工作!我有如下错误。

   Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected

应用程序/控制器/omniauth_controller.rb

    class OmniauthCallbacksController < Devise::OmniauthCallbacksController
        def facebook
            @user = User.from_omniauth(request.env["omniauth.auth"].except("extra"))

            if @user.persisted?
                sign_in_and_redirect @user, event: :authentication
            else
                session["devise.user_attributes"] = @user.attributes
                redirect_to new_user_registration_url
            end
        end

        def linkedin
            @user = User.from_omniauth(request.env["omniauth.auth"].except("extra"))

            if @user.persisted?
                sign_in_and_redirect @user, event: :authentication
            else
                session["devise.user_attributes"] = @user.attributes
                redirect_to new_user_registration_url
            end
        end
    end

配置/初始化程序/devise.rb

  config.omniauth :linkedin,
    Rails.application.credentials[Rails.env.to_sym][:linkedin][:client_id],
    Rails.application.credentials[Rails.env.to_sym][:linkedin][:client_secret],
    provider_ignores_state: true

标签: ruby-on-rails

解决方案


推荐阅读