【发布时间】:2022-10-23 17:40:05
【问题描述】:
我在 l5-swagger 配置中添加了中间件,并尝试打印出用户对象,但它返回 null。
是否可以使用 Laravel 内部定义的角色和权限来限制由 swagger 生成的特定或所有 API/文档?
编辑 这是中间件,这里没什么特别的。 IM 只是试图检查用户是否在这里存在并且它失败了。
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class ApiDocumentationAuthCheck
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request):
(\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
dd(Auth()->user());
// if auth User allow access to API
return $next($request);
// else redirect to Login route with auto redirect back
}
}
在 l5-swagger 配置中,我设置了这样的中间件
'middleware' => [
'api' => ['ApiDocumentationAuthCheck'],
'asset' => [],
'docs' => [],
'oauth2_callback' => [],
],
【问题讨论】:
-
是的,它可能。但为了能够更好地帮助您,您需要对您编写的代码提供更完整的描述。
-
我编辑了我的问题以包括中间件和 swagger 配置,我还能添加什么有帮助的?
标签: laravel swagger swagger-ui l5-swagger