Sha256: 545fa1df384416eaf675df7088541676dc3175145b0151206da1522a236b7d76

Contents?: true

Size: 1.38 KB

Versions: 4

Compression:

Stored size: 1.38 KB

Contents

class LoginController < ApplicationController
  def index
    # Ask user for their #{shop}.myshopify.com address
    
    # If the #{shop}.myshopify.com address is already provided in the URL, just skip to #authenticate
    if params[:shop].present?
      redirect_to :controller => 'login', :action => "authenticate", :shop => params[:shop]
    end
  end

  def authenticate
    if params[:shop].present?
      redirect_to ShopifyAPI::Session.new(params[:shop].to_s).create_permission_url
    else
      redirect_to return_address
    end
  end
  
  # Shopify redirects the logged-in user back to this action along with
  # the authorization token t.
  # 
  # This token is later combined with the developer's shared secret to form
  # the password used to call API methods.
  def finalize
    shopify_session = ShopifyAPI::Session.new(params[:shop], params[:t], params)
    if shopify_session.valid?
      session[:shopify] = shopify_session
      flash[:notice] = "Logged in to shopify store."
      
      redirect_to return_address
      session[:return_to] = nil
    else
      flash[:error] = "Could not log in to Shopify store."
      redirect_to :action => 'index'
    end
  end
  
  def logout
    session[:shopify] = nil
    flash[:notice] = "Successfully logged out."
    
    redirect_to :action => 'index'
  end
  
  protected
  
  def return_address
    session[:return_to] || root_url
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
shopify_app-1.0.1 lib/generators/shopify_app/templates/app/controllers/login_controller.rb
shopify_app-1.0.0 lib/generators/shopify_app/templates/app/controllers/login_controller.rb
shopify_app-0.1.4 lib/generators/shopify_app/templates/app/controllers/login_controller.rb
shopify_app-0.1.0 lib/generators/shopify_app/templates/app/controllers/login_controller.rb