auth:api中间件的位置



有人能告诉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.
});

我希望这能解决你的问题。

相关内容

  • 没有找到相关文章

最新更新