#10 Add god token to filter some request

This commit is contained in:
2015-11-10 22:56:28 +08:00
parent febea3313e
commit 4490a6dc49
@@ -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