Class: ShopifyAPI::Utils::SessionUtils
- Inherits:
-
Object
- Object
- ShopifyAPI::Utils::SessionUtils
- Extended by:
- T::Sig
- Defined in:
- lib/shopify_api/utils/session_utils.rb
Class Method Summary collapse
- .cookie_session_id(cookies) ⇒ Object
- .current_session_id(auth_header, cookies, online) ⇒ Object
- .delete_current_session(auth_header: nil, cookies: nil, is_online: false) ⇒ Object
- .delete_offline_session(shop:) ⇒ Object
- .jwt_session_id(shop, user_id) ⇒ Object
- .load_current_session(auth_header: nil, cookies: nil, is_online: false) ⇒ Object
- .load_offline_session(shop:, include_expired: false) ⇒ Object
- .offline_session_id(shop) ⇒ Object
Class Method Details
.cookie_session_id(cookies) ⇒ Object
123 124 125 |
# File 'lib/shopify_api/utils/session_utils.rb', line 123 def () [Auth::Oauth::SessionCookie::SESSION_COOKIE_NAME] end |
.current_session_id(auth_header, cookies, online) ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/shopify_api/utils/session_utils.rb', line 80 def current_session_id(auth_header, , online) if Context. if auth_header matches = auth_header.match(/^Bearer (.+)$/) unless matches ShopifyAPI::Logger.warn("Missing Bearer token in authorization header") raise Errors::MissingJwtTokenError, "Missing Bearer token in authorization header" end jwt_payload = Auth::JwtPayload.new(T.must(matches[1])) shop = jwt_payload.shop if online jwt_session_id(shop, jwt_payload.sub) else offline_session_id(shop) end else # falling back to session cookie raise Errors::CookieNotFoundError, "JWT token or Session cookie not found for app" unless && [Auth::Oauth::SessionCookie::SESSION_COOKIE_NAME] () end else raise Errors::CookieNotFoundError, "Session cookie not found for app" unless && [Auth::Oauth::SessionCookie::SESSION_COOKIE_NAME] () end end |
.delete_current_session(auth_header: nil, cookies: nil, is_online: false) ⇒ Object
36 37 38 39 40 41 42 43 |
# File 'lib/shopify_api/utils/session_utils.rb', line 36 def delete_current_session(auth_header: nil, cookies: nil, is_online: false) validate_session_storage_for_deprecated_utils session_id = current_session_id(auth_header, , is_online) return false unless session_id T.must(Context.session_storage).delete_session(session_id) end |
.delete_offline_session(shop:) ⇒ Object
66 67 68 69 70 71 |
# File 'lib/shopify_api/utils/session_utils.rb', line 66 def delete_offline_session(shop:) validate_session_storage_for_deprecated_utils session_id = offline_session_id(shop) T.must(Context.session_storage).delete_session(session_id) end |
.jwt_session_id(shop, user_id) ⇒ Object
113 114 115 |
# File 'lib/shopify_api/utils/session_utils.rb', line 113 def jwt_session_id(shop, user_id) "#{shop}_#{user_id}" end |
.load_current_session(auth_header: nil, cookies: nil, is_online: false) ⇒ Object
19 20 21 22 23 24 25 26 27 |
# File 'lib/shopify_api/utils/session_utils.rb', line 19 def load_current_session(auth_header: nil, cookies: nil, is_online: false) validate_session_storage_for_deprecated_utils return load_private_session if Context.private? session_id = current_session_id(auth_header, , is_online) return nil unless session_id T.must(Context.session_storage).load_session(session_id) end |
.load_offline_session(shop:, include_expired: false) ⇒ Object
51 52 53 54 55 56 57 58 59 |
# File 'lib/shopify_api/utils/session_utils.rb', line 51 def load_offline_session(shop:, include_expired: false) validate_session_storage_for_deprecated_utils session_id = offline_session_id(shop) session = T.must(Context.session_storage).load_session(session_id) return nil if session && !include_expired && session.expires && T.must(session.expires) < Time.now session end |
.offline_session_id(shop) ⇒ Object
118 119 120 |
# File 'lib/shopify_api/utils/session_utils.rb', line 118 def offline_session_id(shop) "offline_#{shop}" end |