Middleware and routes

View middleware

Add \Esc\Shopify\Http\Middleware\ViewMiddleware::class in the $middleware array in app/Http/Kernel.php.

This will allow you to use user and shop from within any view to retrieve the currently authenticated user and shop.

Example:

<!-- resouces/views/_greeting.twig -->
<p>
  Hello {{ user.name }}! You can configure settings for {{ shop.shop_domain }} here.
</p>
// app/Http/Kernel.php
<?php

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    /**
     * The application's global HTTP middleware stack.
     *
     * @var array
     */
    protected $middleware = [
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,

        \Esc\Shopify\Http\Middleware\ViewMiddleware::class,
    ];

    /**
     * The application's route middleware.
     *
     * @var array
     */
    protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    ];
}

Setup main app route

Create a route for /app. This is where the EASDK auth helper will redirect logged-in users.

You can retrieve the authenticated user, shop, and API wrapper like this:

use Illuminate\Http\Request;
use App\User;
use App\Shop;
...


public function index(Shop $shop) {
  $user = $shop->user;
  $api = $shop->getAPI();
}

// OR

public function index(Request $request) {
  $user = $request->user();
  $shop = $request->user()->shop;
  $api = $shop->getAPI();
}

results matching ""

    No results matching ""