Module: ShopifyApp::LoginProtection
Defined Under Namespace
Classes: ShopifyDomainNotFound, ShopifyHostNotFound
Constant Summary
collapse
'X-Shopify-API-Request-Failure-Unauthorized'
Instance Method Summary
collapse
Instance Method Details
#activate_shopify_session ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/shopify_app/controller_concerns/login_protection.rb', line 21
def activate_shopify_session
if user_session_expected? && user_session.blank?
signal_access_token_required
return redirect_to_login
end
return redirect_to_login if current_shopify_session.blank?
clear_top_level_oauth_cookie
begin
ShopifyAPI::Base.activate_session(current_shopify_session)
yield
ensure
ShopifyAPI::Base.clear_session
end
end
|
#current_shopify_session ⇒ Object
39
40
41
42
43
|
# File 'lib/shopify_app/controller_concerns/login_protection.rb', line 39
def current_shopify_session
@current_shopify_session ||= begin
user_session || shop_session
end
end
|
#login_again_if_different_user_or_shop ⇒ Object
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
# File 'lib/shopify_app/controller_concerns/login_protection.rb', line 77
def login_again_if_different_user_or_shop
if session[:user_session].present? && params[:session].present? clear_session = session[:user_session] != params[:session] end
if current_shopify_session &&
params[:shop] && params[:shop].is_a?(String) &&
(current_shopify_session.domain != params[:shop])
clear_session = true
end
if clear_session
clear_shopify_session
redirect_to_login
end
end
|
#shop_session ⇒ Object
61
62
63
|
# File 'lib/shopify_app/controller_concerns/login_protection.rb', line 61
def shop_session
shop_session_by_jwt || shop_session_by_cookie
end
|
#shop_session_by_cookie ⇒ Object
#shop_session_by_jwt ⇒ Object
#signal_access_token_required ⇒ Object
94
95
96
|
# File 'lib/shopify_app/controller_concerns/login_protection.rb', line 94
def signal_access_token_required
response.(ACCESS_TOKEN_REQUIRED_HEADER, "true")
end
|
#user_session ⇒ Object
45
46
47
|
# File 'lib/shopify_app/controller_concerns/login_protection.rb', line 45
def user_session
user_session_by_jwt || user_session_by_cookie
end
|
#user_session_by_cookie ⇒ Object
#user_session_by_jwt ⇒ Object