Add temporary Shopify OAuth install routes
Deploy / deploy (push) Successful in 14s

/shopify/install  → redirects to Shopify OAuth
/shopify/callback → exchanges code for access token and displays it

To be removed after token is captured.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Malek Tellissi
2026-09-11 03:12:20 +02:00
co-authored by Claude Sonnet 4.6
parent 7e9c43f2bf
commit 2b7913311a
2 changed files with 59 additions and 0 deletions
@@ -0,0 +1,54 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
class ShopifyInstallController extends Controller
{
private string $clientId;
private string $clientSecret;
private string $shop;
private string $scopes = 'read_products,read_inventory,read_orders';
public function __construct()
{
$this->clientId = '1b6430c8cc94b5e58716235abd9bbd73';
$this->clientSecret = config('services.shopify.webhook_secret');
$this->shop = 'bluefootedboobyspices.myshopify.com';
}
public function install()
{
$url = "https://{$this->shop}/admin/oauth/authorize"
. "?client_id={$this->clientId}"
. "&scope={$this->scopes}"
. "&state=spicesetup";
return redirect($url);
}
public function callback(Request $request)
{
$code = $request->query('code');
if (!$code) {
return response('Kein Code empfangen. ' . $request->getQueryString(), 400);
}
$response = Http::post("https://{$this->shop}/admin/oauth/access_token", [
'client_id' => $this->clientId,
'client_secret' => $this->clientSecret,
'code' => $code,
]);
if ($response->failed()) {
return response('Token-Exchange fehlgeschlagen: ' . $response->body(), 500);
}
$token = $response->json('access_token');
return response("<pre>SHOPIFY_ACCESS_TOKEN={$token}</pre>");
}
}
+5
View File
@@ -1,7 +1,12 @@
<?php <?php
use App\Http\Controllers\ShopifyInstallController;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
Route::get('/', function () { Route::get('/', function () {
return redirect('/dashboard', 301); return redirect('/dashboard', 301);
}); });
// Temporär: einmalige Shopify OAuth-Installation
Route::get('/shopify/install', [ShopifyInstallController::class, 'install']);
Route::get('/shopify/callback', [ShopifyInstallController::class, 'callback']);