require 'omniauth-oauth2' require 'multi_json' module OmniAuth module Strategies class Droom < OmniAuth::Strategies::OAuth2 class NoAuthorizationCodeError < StandardError; end option :name, :droom option :provider_ignores_state, true option :fields, [:name, :forename, :email, :phone, :admin, :image] option :client_options, { :site => ENV['droom_host'], :authorize_url => "/oauth/authorize" } uid do raw_info["id"] end info do { :email => raw_info["email"], :name => raw_info["name"], :admin => raw_info["admin"], :forename => raw_info["forename"], :image => raw_info["image"] } end extra do { :raw_info => raw_info # here we will eventually receive activity permissions } end def raw_info @raw_info ||= access_token.get('/api/me.json').parsed end end end end