robzolkos
11/20/2011 - 9:59 AM

OmniAuth 1.0 custom strategy

OmniAuth 1.0 custom strategy

require 'omniauth-oauth2'

module OmniAuth
  module Strategies

    class Copirite < OmniAuth::Strategies::OAuth2
      option :name, "copirite"

      option :client_options, { 
        :site => CUSTOM_PROVIDER_URL,
        :authorize_url => "#{CUSTOM_PROVIDER_URL}/auth/copirite/authorize",
        :access_token_url => "#{CUSTOM_PROVIDER_URL}/auth/copirite/access_token"
      }

      uid { raw_info['id'] }

      info do
        {
          'name' => raw_info['name'],
          'email' => raw_info['email']
        }
      end

      extra do 
        {
          'raw_info' => raw_info
        }
      end

      def raw_info
        @raw_info ||= access_token.get('/me').parsed
      end
    end

  end
end