Sha256: df6e45690daa1cf2601bca1e41320947a4d85047fcac43e83213584d968b8aee

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

require "omniauth-box/version"
require 'box-api'
require 'omniauth'

module OmniAuth
  module Strategies
    class Box
      include OmniAuth::Strategy

      args [:api_token]

      option :api_token, nil
      option :name, 'box'

      attr_accessor :auth_token

      def account
        ::Box::Account.new(options[:api_token])
      end

      def client
        client = ::Box::Api.new(options[:api_token])
        client.set_auth_token(self.auth_token)
        client
      end

      def request_phase
        account.authorize do |authorize_url|
          return redirect authorize_url
        end
      end

      def callback_phase
        self.auth_token = request.params["auth_token"]
        super
      end

      uid{ raw_info['user']['user_id'] }

      info do
        {
          :email => raw_info['user']['email'],
          :nickname => raw_info['user']['login'],
        }
      end

      extra{ {:raw_info => raw_info} }
      credentials{ {:token => self.auth_token} }

      def raw_info
        @raw_info ||= client.get_account_info
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
omniauth-box-0.0.1 lib/omniauth-box.rb