Skip to content

Instantly share code, notes, and snippets.

@regedarek
Forked from wkrsz/devise.rb
Created July 6, 2013 16:32
Show Gist options
  • Save regedarek/5940403 to your computer and use it in GitHub Desktop.
Save regedarek/5940403 to your computer and use it in GitHub Desktop.
#config/initializers/devise.rb
config.warden do |manager|
manager.strategies.add :token_header_authenticable, TokenHeaderAuthenticable
manager.default_strategies(:scope => :user).unshift :token_header_authenticable
end
#lib/token_header_authenticable.rb
class TokenHeaderAuthenticable < ::Devise::Strategies::Base
def valid?
token_value.present?
end
def authenticate!
resource_scope = mapping.to
resource = resource_scope.find_for_token_authentication(auth_token: token_value)
if resource
success!(resource)
else
fail!
end
end
private
def token_value
if header && header =~ /^Token token="(.+)"$/
$~[1]
end
end
def header
request.headers["Authorization"]
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment