Sha256: 8662da3ddc7e53af4bc41fe97fba9241b4bcd0490a32ab259564144b0f4d5cf0

Contents?: true

Size: 1.19 KB

Versions: 1

Compression:

Stored size: 1.19 KB

Contents

require 'omniauth-oauth2'

module OmniAuth
  module Strategies
    class MicrosoftGraph < OmniAuth::Strategies::OAuth2
      option :name, :microsoft_graph

      option :client_options, {
        site:          'https://login.microsoftonline.com/common/oauth2/authorize',
        token_url:     'https://login.microsoftonline.com/common/oauth2/token',
        authorize_url: 'https://login.microsoftonline.com/common/oauth2/authorize'
      }

      option :authorize_params, {
        resource: 'https://graph.microsoft.com/'
      }

      option :token_params, {
        resource: 'https://graph.microsoft.com/'        
      }

      uid { raw_info["id"] }

      info do
        {
          'email' => raw_info["mail"],
          'first_name' => raw_info["givenName"],
          'last_name' => raw_info["surname"],
          'name' => [raw_info["givenName"], raw_info["surname"]].join(' '),
          'nickname' => raw_info["displayName"],
        }
      end

      extra do
        {
          'raw_info' => raw_info,
          'params' => access_token.params
        }
      end

      def raw_info
        @raw_info ||= access_token.get(authorize_params.resource + 'v1.0/me').parsed
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
omniauth-microsoft_graph-0.1.0 lib/omniauth/strategies/microsoft_graph.rb