auth:api 中间件的位置
Location of auth:api Middleware
有人可以告诉我 auth:api
中间件的位置吗?
根据 auth:api
中间件,api 路由受非空用户保护。
我在用户 table 中有一个名为 Is_Admin_Url_Accessible 的 boolean
字段。我想在 auth:api
中间件中为某些路由添加一个条件,使用户只有那些被允许访问管理区域的用户才能访问这些路由。
我检查了这里的 class 但没有帮助。
\app\Http\Middleware\Authenticate.php
您可以添加一个使控制用户可访问的中间件,您可以将其设置为路由组的中间件,例如 auth:api
请在您的终端上运行php artisan make:middleware UserAccessible
。
在上面的 artisan 命令 运行 之后,您会看到在 App/Http/Middleware
文件夹中生成了一个名为 UserAccessible.php
的文件。
UserAccessible.php
内容
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class UserAccessible
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$user = Auth::user();
if(!$user->accesible){
// redirect page or error.
}
return $next($request);
}
}
然后,你必须通过App/Http/Kernel.php
定义一个路由中间件
Kernel.php
内容
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array
*/
protected $routeMiddleware = [
...
'user_accessible' => \App\Http\Middleware\UserAccessible::class
];
最后,您可以为您的路由组定义路由中间件;
api.php
内容
Route::group(['middleware' => ['auth:api', 'user_accessible']], function () {
// your protected routes.
});
希望这能解决您的问题。
有人可以告诉我 auth:api
中间件的位置吗?
根据 auth:api
中间件,api 路由受非空用户保护。
我在用户 table 中有一个名为 Is_Admin_Url_Accessible 的 boolean
字段。我想在 auth:api
中间件中为某些路由添加一个条件,使用户只有那些被允许访问管理区域的用户才能访问这些路由。
我检查了这里的 class 但没有帮助。
\app\Http\Middleware\Authenticate.php
您可以添加一个使控制用户可访问的中间件,您可以将其设置为路由组的中间件,例如 auth:api
请在您的终端上运行php artisan make:middleware UserAccessible
。
在上面的 artisan 命令 运行 之后,您会看到在 App/Http/Middleware
文件夹中生成了一个名为 UserAccessible.php
的文件。
UserAccessible.php
内容
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class UserAccessible
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$user = Auth::user();
if(!$user->accesible){
// redirect page or error.
}
return $next($request);
}
}
然后,你必须通过App/Http/Kernel.php
Kernel.php
内容
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array
*/
protected $routeMiddleware = [
...
'user_accessible' => \App\Http\Middleware\UserAccessible::class
];
最后,您可以为您的路由组定义路由中间件;
api.php
内容
Route::group(['middleware' => ['auth:api', 'user_accessible']], function () {
// your protected routes.
});
希望这能解决您的问题。