Class: OmniAuth::Strategies::Canvas

Inherits:
OAuth2
  • Object
show all
Defined in:
lib/omniauth/strategies/canvas.rb

Instance Method Summary collapse

Instance Method Details

#authorize_paramsObject

Override authorize_params so that we can be deliberate about the value for state and not use the session which is unavailable inside of an iframe for some browsers (ie Safari)



55
56
57
58
59
60
61
62
63
64
# File 'lib/omniauth/strategies/canvas.rb', line 55

def authorize_params
  # Only set state if it hasn't already been set
  options.authorize_params[:state] ||= SecureRandom.hex(24)
  params = options.authorize_params.merge(options_for("authorize"))
  if OmniAuth.config.test_mode
    @env ||= {}
    @env["rack.session"] ||= {}
  end
  params
end

#query_stringObject

Passing any query string value to Canvas will result in: redirect_uri does not match client settings so we set the value to empty string



48
49
50
# File 'lib/omniauth/strategies/canvas.rb', line 48

def query_string
  ""
end

#raw_infoObject



41
42
43
# File 'lib/omniauth/strategies/canvas.rb', line 41

def raw_info
  @raw_info ||= access_token.get("/api/v1/users/#{access_token['user']['id']}/profile").parsed
end