CakePHP 4身份验证插件RequestAuthorizationMiddleware重定向URL丢失

问题描述 投票:0回答:1

我尝试在蛋糕4的应用程序中为某些控制器添加RequestAuthorizationMiddleware。在Authorization Middleware中,我看到这样的代码块:

$middlewareQueue->add(new AuthorizationMiddleware($this, [
    'unauthorizedHandler' => [
        'className' => 'Authorization.Redirect',
        'url' => '/users/login',
        'queryParam' => 'redirectUrl',
        'exceptions' => [
            MissingIdentityException::class,
            OtherException::class,
        ],
    ],
]));

如果授权失败,我可以添加重定向URL。这项工作正常,但是我如何为Request Authorization Middleware添加重定向网址?

redirect cakephp authorization cakephp-4.x
1个回答
0
投票

当授权失败时,您并没有真正获得重定向,但是当授权不能从头开始执行时,即当不存在可用于授权的经过身份验证的身份时,将引发以下异常:

\Authorization\Exception\MissingIdentityException

如果您想获得不成功的授权,即当不允许用户/身份访问您要保护的任何资源时,您也需要处理以下异常:

\Authorization\Exception\ForbiddenException

该异常由请求授权中间件以及by the authorization component引发。

只需将其添加到exceptions配置中,您应该会很好(假设您可以接受所有失败的授权尝试的重定向):

'exceptions' => [
    \Authorization\Exception\MissingIdentityException::class,
    \Authorization\Exception\ForbiddenException::class,
    // ...
],

请注意,为了使所有这些正常工作,您必须添加请求授权中间件之后默认授权中间件!

© www.soinside.com 2019 - 2024. All rights reserved.