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(shopify_id_token, cookies, online) ⇒ Object
- .jwt_session_id(shop, user_id) ⇒ Object
- .offline_session_id(shop) ⇒ Object
- .session_id_from_shopify_id_token(id_token:, online:) ⇒ Object
Class Method Details
.cookie_session_id(cookies) ⇒ Object
69 70 71 |
# File 'lib/shopify_api/utils/session_utils.rb', line 69 def () [Auth::Oauth::SessionCookie::SESSION_COOKIE_NAME] end |
.current_session_id(shopify_id_token, cookies, online) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/shopify_api/utils/session_utils.rb', line 19 def current_session_id(shopify_id_token, , online) if Context. 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 && [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 |
.jwt_session_id(shop, user_id) ⇒ Object
59 60 61 |
# File 'lib/shopify_api/utils/session_utils.rb', line 59 def jwt_session_id(shop, user_id) "#{shop}_#{user_id}" end |
.offline_session_id(shop) ⇒ Object
64 65 66 |
# File 'lib/shopify_api/utils/session_utils.rb', line 64 def offline_session_id(shop) "offline_#{shop}" end |
.session_id_from_shopify_id_token(id_token:, online:) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 |
# 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, payload.sub) else offline_session_id(shop) end end |