class ShopifyAPI::Utils::SessionUtils
Public Class Methods
Source
# File lib/shopify_api/utils/session_utils.rb, line 19 def current_session_id(shopify_id_token, cookies, online) if Context.embedded? if shopify_id_token id_token = shopify_id_token.gsub("Bearer ", "") session_id_from_shopify_id_token(id_token: id_token, online: online) else # falling back to session cookie raise Errors::CookieNotFoundError, "JWT token or Session cookie not found for app" unless cookies && cookies[Auth::Oauth::SessionCookie::SESSION_COOKIE_NAME] cookie_session_id(cookies) end else raise Errors::CookieNotFoundError, "Session cookie not found for app" unless cookies && cookies[Auth::Oauth::SessionCookie::SESSION_COOKIE_NAME] cookie_session_id(cookies) end end
Source
# File lib/shopify_api/utils/session_utils.rb, line 59 def jwt_session_id(shop, user_id) "#{shop}_#{user_id}" end
Source
# File lib/shopify_api/utils/session_utils.rb, line 64 def offline_session_id(shop) "offline_#{shop}" end
Source
# File lib/shopify_api/utils/session_utils.rb, line 45 def session_id_from_shopify_id_token(id_token:, online:) raise Errors::MissingJwtTokenError, "Missing Shopify ID Token" if id_token.nil? || id_token.empty? payload = Auth::JwtPayload.new(id_token) shop = payload.shop if online jwt_session_id(shop, T.must(payload.sub)) else offline_session_id(shop) end end