2015-02-19 7 views
0

Я начал разрабатывать приложение для рельсов, и пользователь будет входить в систему, используя только facebook i.e. omniauth-facebook gem. Но теперь, как я могу использовать метод user_signed_in?, не используя приложение в своем приложении?Как аутентифицировать пользователя с помощью Omniauth-facebook в rails 4

Я хочу проверить подлинность пользователя перед каждым действием в своем приложении.

ответ

1

В ApplicationController:

class ApplicationController < ActionController::Base 
    #Prevent CSRF attacks by raising an exception. 
    # For APIs, you may want to use :null_session instead. 
    protect_from_forgery with: :exception 
    protected 
    def authenticate! 
    redirect_to root_path unless user_signed_in? 
    end 
    def user_signed_in? 
    !!session[:user_id] 
    end 
    def current_user 
    User.find(session[:user_id]) 
    end 
end 

Размещая методы в ApplicationController вы можете называть их в любой из ваших контроллеров. Теперь, чтобы использовать их в своих целях, вы должны скопировать этот код в свой ApplicationHelper

module ApplicationHelper 
    def user_signed_in? 
     !!session[:user_id] 
    end 
    def current_user 
     User.find(session[:user_id]) 
    end 
end