<?php
namespace App\Http\Middleware;
use Illuminate\Auth\Middleware\Authenticate as Middleware;
class Authenticate extends Middleware
{
/**
* Get the path the user should be redirected to when they are not authenticated.
*
* @param \Illuminate\Http\Request $request
* @return string|null
*/
protected function redirectTo($request)
{
if (! $request->expectsJson()) {
return route('login');
}
}
}
这个类扩展了Illuminate\Auth\Middleware\Authenticate - 它覆盖了redirectTo 方法。你需要写下你自己的句柄方法。如果您不需要框架的身份验证方法,则可以删除 extends 部分。
public function handle($request, Closure $next, ...$guards)
{
if (Auth::guest()) {
return response()->json(['message' => 'you shall not pass']);
}
// other checks
return $next($request);
}
另一个选择是保留extends 并在定期检查是否需要基类的某些功能后调用父方法。
public function handle($request, Closure $next, ...$guards)
{
if (Auth::guest()) {
return response()->json(['message' => 'you shall not pass']);
}
return parent::handle($request, $next, $guards);
}