diff --git a/app/controllers/api/v1/sessions_controller.rb b/app/controllers/api/v1/sessions_controller.rb index 5aedad0..3e2aeb0 100644 --- a/app/controllers/api/v1/sessions_controller.rb +++ b/app/controllers/api/v1/sessions_controller.rb @@ -2,7 +2,7 @@ class Api::V1::SessionsController < Devise::SessionsController skip_before_action :verify_authenticity_token after_action :clear_session - before_action :callback, only: [:map_callback_info] + before_action :check_god_token, only: [:callback] def create warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#failure") @@ -29,13 +29,16 @@ class Api::V1::SessionsController < Devise::SessionsController private - def app_auth uid, provider, access_token + def app_auth uid, provider, access_token identity = Identity.find_or_create_by(uid: uid, provider: provider) user = identity.user if user user else - User.create_user_from_oauth(uid, provider, nil, nil, nil) + user = User.create_user_from_oauth(uid, provider, nil, nil, nil) + identity.user = user + identity.save! + user end end @@ -43,8 +46,9 @@ class Api::V1::SessionsController < Devise::SessionsController session.clear end - def map_callback_info - + def check_god_token + god_token = request.headers["Authorization"].try(:split, ' ').try(:last) + return render json: {message: 'You are fake!'}, status: 401 if god_token != 'love_libr' end end