我尝试在蛋糕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添加重定向网址?
当授权失败时,您并没有真正获得重定向,但是当授权不能从头开始执行时,即当不存在可用于授权的经过身份验证的身份时,将引发以下异常:
\Authorization\Exception\MissingIdentityException
如果您想获得不成功的授权,即当不允许用户/身份访问您要保护的任何资源时,您也需要处理以下异常:
\Authorization\Exception\ForbiddenException
该异常由请求授权中间件以及by the authorization component引发。
只需将其添加到exceptions
配置中,您应该会很好(假设您可以接受所有失败的授权尝试的重定向):
'exceptions' => [
\Authorization\Exception\MissingIdentityException::class,
\Authorization\Exception\ForbiddenException::class,
// ...
],
请注意,为了使所有这些正常工作,您必须添加请求授权中间件之后默认授权中间件!