Sha256: 3cd7c2f0c6100ef2e1c7eb214d42fabaad7bac411c4ca40bad24348d6aa25ed7

Contents?: true

Size: 1004 Bytes

Versions: 2

Compression:

Stored size: 1004 Bytes

Contents

module CanvasOauth
  class CanvasController < CanvasOauth::OauthApplicationController
    skip_before_action :request_canvas_authentication

    def oauth
      if verify_oauth2_state(params[:state]) && params[:code]
        if token = canvas.get_access_token(params[:code])
          refresh_token = canvas.refresh_token
          if CanvasOauth::Authorization.cache_token(token, refresh_token, user_id, tool_consumer_instance_guid)
            redirect_to main_app.root_path
          else
            render plain: "Error: unable to save token"
          end
        else
          render plain: "Error: invalid code - #{params[:code]}"
        end
      else
        render plain: "#{CanvasOauth::Config.tool_name} needs access to your account in order to function properly. Please try again and click log in to approve the integration."
      end
    end

    def verify_oauth2_state(callback_state)
      callback_state.present? && callback_state == session.delete(:oauth2_state)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
qalam_oauth_engine-3.0.0 app/controllers/canvas_oauth/canvas_controller.rb
qalam_oauth_engine-2.2.9 app/controllers/canvas_oauth/canvas_controller.rb