Laravel 5.4 does not have Middleware/Authenticate.php

Asked

Viewed 153 times

0

I am following an example about jwt and Laravel 5 and I am in need of Middleware/Authenticate.php file, however, in my project there is no file(Laravel version is 5.4.36), I tried the command php Artisan make:auth but he didn’t generate the file. How can I make it to create Middleware/Authenticate.php ?

  • You enter the Middlwware folder and create the file manually. Then you go back to your tutorial and put inside it the necessary content.

1 answer

0

Researching a little more about middleware at Laravel, I found the command to create a middleware that is php Artisan make:middleware Authenticate, however, this command creates the file only with the Handle() function because it does not know the implementation(rsrsrsrsr), lucky for me I had an implementation of another system that I will leave the source here as an example if someone else needs it (modify if necessary!).

Middleware/Authenticate.php:

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Contracts\Auth\Guard;

class Authenticate
{

    /**
    * The Guard implementation.
    *
    * @var Guard
    */
   protected $auth;

   /**
    * Create a new filter instance.
    *
    * @param  Guard  $auth
    * @return void
    */
   public function __construct(Guard $auth)
   {
           $this->auth = $auth;
   }

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if ($this->auth->guest())
        {
                if ($request->ajax())
                {
                        return response('Unauthorized.', 401);
                }
                else
                {
                        return redirect()->guest('auth/login');
                }
        }
        return $next($request);
    }
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.