Skip to content

Commit

Permalink
Merge pull request #1158 from Shopify/NabeelAhsen/fix-non-embedded-st…
Browse files Browse the repository at this point in the history
…ate-of-EnsureAuthenticatedConcern

[Bug fix] Redirect EnsureAuthenticatedLinks to login page if shop domain not found
  • Loading branch information
NabeelAhsen committed Jan 25, 2021
2 parents 5af43ef + 551fff6 commit 8dcbbbf
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ module EnsureAuthenticatedLinks
def redirect_to_splash_page
splash_page_path = root_path(return_to: request.fullpath, shop: current_shopify_domain)
redirect_to(splash_page_path)
rescue ShopifyApp::LoginProtection::ShopifyDomainNotFound => error
Rails.logger.warn("[ShopifyApp::EnsureAuthenticatedLinks] Redirecting to login: [#{error.class}] "\
"Could not determine current shop domain")
redirect_to(ShopifyApp.configuration.login_url)
end

def missing_expected_jwt?
Expand Down
16 changes: 16 additions & 0 deletions test/controllers/concerns/ensure_authenticated_links_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,20 @@ def current_shopify_domain

assert_response :ok
end

test 'redirects to login page if current shopify domain is not found' do
@controller.expects(:current_shopify_domain).raises(ShopifyApp::LoginProtection::ShopifyDomainNotFound)
expect_redirect_error(ShopifyApp::LoginProtection::ShopifyDomainNotFound, "Could not determine current shop domain")

get :some_link

assert_redirected_to ShopifyApp.configuration.login_url
end

private

def expect_redirect_error(klass, message)
expected_message = "[ShopifyApp::EnsureAuthenticatedLinks] Redirecting to login: [#{klass}] #{message}"
Rails.logger.expects(:warn).once.with(expected_message)
end
end

0 comments on commit 8dcbbbf

Please sign in to comment.