에 대한 정의되지 않은 로컬 변수 또는 메소드`flash '프론트 엔드에 Omniauth-facebook 및 Devise-token-auth와 Angular 및 ng-token-auth를 사용하여 Rails-API를 빌드하고 있습니다. 그러나 레일-API이 포함되어 있지 않습니다# <Devise :: OmniauthCallbacksController : 0x007fb5d1741e48>
undefined local variable or method `flash' for #<Devise::OmniauthCallbacksController:0x007fd027a51e10>
그것은 자동으로 omniauth 것 같다 플래시 미들웨어를 사용하고 난 실패 omniauth와 플래시의 사용을 비활성화되었습니다 페이스 북으로 로그인 할 때 그러나 나는 오류되게하고 . 내 구성은 다음과 같습니다 :
application.rb :
require File.expand_path('../boot', __FILE__)
require "rails"
# Pick the frameworks you want:
require "active_model/railtie"
require "active_job/railtie"
require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
require "action_view/railtie"
require "sprockets/railtie"
# require "rails/test_unit/railtie"
# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)
module PathfinderApi
class Application < Rails::Application
config.active_record.raise_in_transactional_callbacks = true
config.middleware.insert_before 0, "Rack::Cors" do
allow do
origins '*'
resource '*', :headers => :any, :methods => [:get, :post, :options]
end
end
config.api_only = true
config.middleware.use ActionDispatch::Flash
config.middleware.use ActionDispatch::Cookies
config.middleware.use ActionDispatch::Session::CookieStore
end
end
devise_token_auth.rb :
DeviseTokenAuth.setup do |config|
Rails.application.secrets.facebook_app_secret
config.change_headers_on_each_request = true
end
devise.rb :
Devise.setup do |config|
config.navigational_formats = [:json]
end
omniauth.rb :
,210내가 함께 플래시 오류가 발생하지 않도록 관리되지 않은 :
config.navigational_formats = [:json]
및/omniauth을 고안 여전히 플래시 미들웨어를 사용하고 오류가 발생합니다, 어떤 도움에 감사드립니다!
확실히 사실은, 그 너무 알아 내기 위해 좀 시간이 걸렸습니다! 부록을위한 Thnx. –
일부 작품이 누락되었습니다. 이는 Omniauth와의 세션 저장을 구성하기위한 것입니다. 실제로 원하는 것은 공식 지침을 따르는 것입니다. https://github.com/omniauth/omniauth#integrating-omniauth-into-your-rails-api – sarink