Skip to content

Commit 463320d

Browse files
committed
generalized middleware check for scopes
1 parent 81e7b10 commit 463320d

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/Generator.php

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ protected function addActionParameters()
171171
protected function addActionScopes()
172172
{
173173
foreach ($this->route->middleware() as $middleware) {
174-
if ($middleware->name() === 'scope' || $middleware->name() === 'scopes') {
174+
if ($this->isPassportScopeMiddleware($middleware)) {
175175
$this->docs['paths'][$this->route->uri()][$this->method]['security'] = [
176176
self::SECURITY_DEFINITION_NAME => $middleware->parameters(),
177177
];
@@ -278,4 +278,19 @@ private function validateAuthFlow(string $flow)
278278
throw new LaravelSwaggerException('Invalid OAuth flow passed');
279279
}
280280
}
281+
282+
private function isPassportScopeMiddleware(DataObjects\Middleware $middleware)
283+
{
284+
$resolver = $this->getMiddlewareResolver($middleware->name());
285+
286+
return $resolver === 'Laravel\Passport\Http\Middleware\CheckScopes' ||
287+
$resolver === 'Laravel\Passport\Http\Middleware\CheckForAnyScope';
288+
}
289+
290+
private function getMiddlewareResolver(string $middleware)
291+
{
292+
$middlewareMap = app('router')->getMiddleware();
293+
294+
return $middlewareMap[$middleware] ?? null;
295+
}
281296
}

tests/TestCase.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ protected function getEnvironmentSetUp($app)
3232

3333
Passport::routes();
3434

35+
$app['router']->aliasMiddleware('scopes', \Laravel\Passport\Http\Middleware\CheckScopes::class);
36+
$app['router']->aliasMiddleware('scope', \Laravel\Passport\Http\Middleware\CheckForAnyScope::class);
37+
3538
Passport::tokensCan([
3639
'user-read' => 'Read user information such as email, name and phone number',
3740
'user-write' => 'Update user information',

0 commit comments

Comments
 (0)