Created
May 19, 2012 10:37
-
-
Save shlomizadok/2730414 to your computer and use it in GitHub Desktop.
Revisions
-
shlomizadok revised this gist
May 20, 2012 . 1 changed file with 13 additions and 11 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,15 +1,17 @@ namespace "api" do resources :notebooks do resources :lessons end end ## Facebook auth (via omniauth) devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" } ## API auth devise_for :users, :controllers => {:sessions => 'api/sessions'}, :skip => [:sessions] do match 'api/login' => 'api/sessions#create', :via => [:get, :post] get 'api/logout' => 'api/sessions#destroy', :as => :destroy_user_session end # Devise auth devise_for :users -
shlomizadok created this gist
May 19, 2012 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,13 @@ class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController def facebook @user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user) if @user.persisted? flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => "Facebook" sign_in_and_redirect @user, :event => :authentication else session["devise.facebook_data"] = request.env["omniauth.auth"] redirect_to new_user_registration_url end end end This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,15 @@ namespace "api" do #devise_for :users resources :notebooks do resources :lessons end end # devise_for :users, :controllers => {:sessions => 'api/sessions'}, :skip => [:sessions] do match 'api/login' => 'api/sessions#create', :via => [:get, :post] get 'api/logout' => 'api/sessions#destroy', :as => :destroy_user_session end devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" } This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,34 @@ class Api::SessionsController < Devise::SessionsController include Devise::Controllers::InternalHelpers before_filter :authenticate_user!, :except => [:create, :destroy] before_filter :ensure_params_exist respond_to :json def create user = warden.authenticate(:scope => :user) if user user.reset_authentication_token! render :json => {:access_token => user.authentication_token, :token_type => "persistant", :name => user.name}, :callback => params[:callback] else render :json => {:error => "invalid_grant"}, :callback => params[:callback] end end def destroy resource = User.find_for_database_authentication(:email => params[:user_login][:email]) resource.authentication_token = nil resource.save render :json=> {:success=>true} end protected def ensure_params_exist return unless params[:user].blank? render :json=>{:success=>false, :message=>"missing user_login parameter"}, :status=>422 end def invalid_login_attempt render :json=> {:success=>false, :message=>"Error with your login or password"}, :status=>401 end end