有人能告诉auth:api
中间件的位置吗?
根据auth:api
中间件,api路由受到非空用户的保护。
我在用户表中有一个名为Is_Admin_Url_Accessible的boolean
字段。我想在auth:api
中间件中为一些路由添加一个条件,让用户只有那些被允许访问管理区域的用户才能访问这些路由。
我在这里查了一下课,但帮不上忙。
appHttpMiddlewareAuthenticate.php
您可以添加一个使控制用户可访问的中间件,并可以将其设置为路由组的中间件,如auth:api
请在您的终端上运行php artisan make:middleware UserAccessible
。
运行上面的artisan命令后,您将看到在App/Http/Middleware
文件夹中生成了一个名为UserAccessible.php
的文件。
UserAccessible.php
内容
namespace AppHttpMiddleware;
use Closure;
use IlluminateSupportFacadesAuth;
class UserAccessible
{
/**
* Handle an incoming request.
*
* @param IlluminateHttpRequest $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' => AppHttpMiddlewareUserAccessible::class
];
最后,您可以定义路由中间件到您的路由组;
api.php
内容
Route::group(['middleware' => ['auth:api', 'user_accessible']], function () {
// your protected routes.
});
我希望这能解决你的问题。