Sha256: 07aa96454cf2f02b563899a9ab71bed252892fc25c336cb661eb54e1e387dd9a

Contents?: true

Size: 1.04 KB

Versions: 1

Compression:

Stored size: 1.04 KB

Contents

require 'omniauth-oauth2'
require 'multi_json'

module OmniAuth
  module Strategies
    class MSUnet < OmniAuth::Strategies::OAuth2
      option :client_options, {
        site: "https://oauth.ais.msu.edu",
        authorize_url: "/oauth/authorize",
        token_url: "/oauth/token"
      }

      uid do
        raw_info['uid'].to_s
      end

      info do
        {
          name: raw_info['info']['name'].to_s || raw_info['name'].to_s,
          first_name: raw_info['info']['first_name'].to_s || raw_info['first_name'].to_s,
          last_name: raw_info['info']['last_name'].to_s || raw_info['last_name'].to_s,
          email: raw_info['info']['email'].to_s || raw_info['email'].to_s,
          msunetid: raw_info['info']['msunetid'].to_s || raw_info['msunetid'].to_s
        }
      end

      extra do
        { raw_info: raw_info }
      end

      def raw_info
        @raw_info ||= MultiJson.load(access_token.get("/oauth/me?access_token=#{access_token.token}").body)
      end

    end
  end
end

OmniAuth.config.add_camelization 'msunet', 'MSUnet'

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
omniauth-msunet-1.0.2 lib/omniauth/strategies/msunet.rb