From 0ee1eddf92e83a552c555b0a7f4d703879979ce0 Mon Sep 17 00:00:00 2001 From: Daniel Gross Date: Mon, 17 Jun 2024 06:48:37 -0400 Subject: [PATCH] Use JWT helpers, improve memoization --- .../with_shopify_id_token.rb | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/shopify_app/controller_concerns/with_shopify_id_token.rb b/lib/shopify_app/controller_concerns/with_shopify_id_token.rb index 1f60a69ec..a4351ab07 100644 --- a/lib/shopify_app/controller_concerns/with_shopify_id_token.rb +++ b/lib/shopify_app/controller_concerns/with_shopify_id_token.rb @@ -5,23 +5,31 @@ module WithShopifyIdToken extend ActiveSupport::Concern def shopify_id_token - @shopify_id_token ||= id_token_from_authorization_header || id_token_from_url_param + return @shopify_id_token if defined?(@shopify_id_token) + + @shopify_id_token = id_token_from_authorization_header || id_token_from_url_param end def jwt_payload - @jwt_payload ||= shopify_id_token.present? ? ShopifyAPI::Auth::JwtPayload.new(shopify_id_token) : nil + return @jwt_payload if defined?(@jwt_payload) + + @jwt_payload = shopify_id_token.present? ? ShopifyAPI::Auth::JwtPayload.new(shopify_id_token) : nil end def jwt_shopify_domain - @jwt_shopify_domain ||= jwt_payload.present? ? ShopifyApp::Utils.sanitize_shop_domain(jwt_payload.dest) : nil + return @jwt_shopify_domain if defined?(@jwt_shopify_domain) + + @jwt_shopify_domain = if jwt_payload.present? + ShopifyApp::Utils.sanitize_shop_domain(jwt_payload.shopify_domain) + end end def jwt_shopify_user_id - jwt_payload&.sub&.to_i + jwt_payload&.shopify_user_id end def jwt_expire_at - expire_at = jwt_payload&.exp&.to_i + expire_at = jwt_payload&.expire_at return unless expire_at expire_at - 5.seconds # 5s gap to start fetching new token in advance