Sha256: 25c05324c5437021d34c38f9eef4974210dc8a6cd03604429db38daf4a6c6e81

Contents?: true

Size: 1.55 KB

Versions: 1

Compression:

Stored size: 1.55 KB

Contents

require 'omniauth-oauth2'

module OmniAuth
  module Strategies
    class Infinum < OmniAuth::Strategies::OAuth2

      # mattr_accessor :url
      def self.url
        @@url
      end

      def self.url=(some_value)
        @@url = some_value
      end
      
      def self.development_environment?
        if defined? Rails
          Rails.env.development?
        else
          ENV['RACK_ENV'].nil? || ENV['RACK_ENV'] == "development"
        end
      end

      @@url = "http#{development_environment? ? '' : 's'}://accounts.infinum.co#{development_environment? ? '.dev' : ''}"
      
      def self.setup
        yield self if block_given?

        option :client_options, {
          :site =>  @@url,
          :authorize_url => "#{@@url}/auth/infinum/authorize",
          :access_token_url => "#{@@url}/auth/infinum/access_token"
        }
      end

      option :client_options, {
        :site =>  @@url,
        :authorize_url => "#{@@url}/auth/infinum/authorize",
        :access_token_url => "#{@@url}/auth/infinum/access_token"
      }

      uid { raw_info['id'] }

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

      extra do
        {
          :first_name => raw_info['extra']['first_name'],
          :last_name  => raw_info['extra']['last_name'],
          :email  => raw_info['extra']['email'],
          :avatar_url => raw_info['extra']['avatar_url']
        }
      end

      def raw_info
        @raw_info ||= access_token.get("/auth/infinum/user.json?oauth_token=#{access_token.token}").parsed
      end


    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
omniauth-infinum-0.9.8 lib/omniauth/strategies/infinum.rb