@@ -83,7 +83,7 @@ public function __construct(
83
83
* @param Request $request The request object.
84
84
* @param Closure $next The next action.
85
85
*
86
- * @throws SignatureVerificationException If HMAC verification fails.
86
+ * @throws SignatureVerificationException|HttpException If HMAC verification fails.
87
87
*
88
88
* @return mixed
89
89
*/
@@ -102,9 +102,12 @@ public function handle(Request $request, Closure $next)
102
102
}
103
103
104
104
if (!Util::useNativeAppBridge ()) {
105
- $ storeResult = !$ this ->isApiRequest ($ request ) && $ this ->checkPreviousInstallation ($ request );
105
+ $ shop = $ this ->getShopIfAlreadyInstalled ($ request );
106
+ $ storeResult = !$ this ->isApiRequest ($ request ) && $ shop ;
106
107
107
108
if ($ storeResult ) {
109
+ $ this ->loginFromShop ($ shop );
110
+
108
111
return $ next ($ request );
109
112
}
110
113
}
@@ -512,4 +515,36 @@ protected function checkPreviousInstallation(Request $request): bool
512
515
513
516
return $ shop && $ shop ->password && ! $ shop ->trashed ();
514
517
}
518
+
519
+ /**
520
+ * Get shop model if there is a store record in the database.
521
+ *
522
+ * @param Request $request The request object.
523
+ *
524
+ * @return ?ShopModel
525
+ */
526
+ protected function getShopIfAlreadyInstalled (Request $ request ): ?ShopModel
527
+ {
528
+ $ shop = $ this ->shopQuery ->getByDomain (ShopDomain::fromRequest ($ request ), [], true );
529
+
530
+ return $ shop && $ shop ->password && ! $ shop ->trashed () ? $ shop : null ;
531
+ }
532
+
533
+ /**
534
+ * Login and validate store
535
+ *
536
+ * @param ShopModel $shop
537
+ *
538
+ * @return void
539
+ */
540
+ protected function loginFromShop (ShopModel $ shop ): void
541
+ {
542
+ // Override auth guard
543
+ if (($ guard = Util::getShopifyConfig ('shop_auth_guard ' ))) {
544
+ $ this ->auth ->setDefaultDriver ($ guard );
545
+ }
546
+
547
+ // All is well, login the shop
548
+ $ this ->auth ->login ($ shop );
549
+ }
515
550
}
0 commit comments