0
У меня есть 2 способа входа в приложение. первый способ - loggin по электронной почте, следующий - loggin через социальные сети.Маршруты не найдены в рельсах
Я установил устройство и omniauth, omniauth-facebook, twitter и google plus. Я успешно внедрил обычный вход в систему через приложение, но когда я пытаюсь войти через fb или twitter или gplus, посещая/auth/facebook, он говорит, что маршрут не найден.
Rails.application.routes.draw do
devise_for :users
root to: 'visitors#index'
get '/auth/:provider/callback' => 'sessions#create'
get '/signin' => 'sessions#new', as: :signin
get '/signout' => 'sessions#destroy', as: :signout
get '/auth/failure' => 'sessions#failure'
end
//session_controller.rb
class SessionsController < ApplicationController
def new
redirect_to '/auth/facebook'
end
def create
auth = request.env['omniauth.auth']
user = User.where(provider: auth['provider'],
uid: auth['uid'].to_s).first || User.create_with_omniauth(auth)
reset_session
session[:user_id] = user.id
redirect_to root_url, notice: 'Signed in!'
end
def destroy
reset_session
redirect_to root_url, notice: 'Signed out!'
end
def failure
redirect_to root_url, alert: "Authentication error: #{params[:message].humanize}"
end
end
//omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET'],
scope: 'public_profile', info_fields: 'id,name,link'
provider :twitter, ENV['TWITTER_KEY'], ENV['TWITTER_SECRET']
provider :google_oauth2, ENV['GOOGLE_CLIENT_ID'], ENV['GOOGLE_SECRET'],
scope: 'profile', image_aspect_ratio: 'square', image_size: 48,
access_type: 'online', name: 'google'
end