为了账号安全,请及时绑定邮箱和手机立即绑定

使用 HTTP 403 重定向

使用 HTTP 403 重定向

PHP
千万里不及你 2022-07-16 17:53:27
我正在使用 Slim PHP 并希望将用户重定向到/login如果他们未登录但尝试访问需要用户登录的页面。在搜索如何构建我的中间件时,我发现此代码的所有变体在那个地方class Auth{        public function requireLogin(Request $request, Response $response, $next){        if( !isLoggedIn() ) return $response->withRedirect('/login', 403);        return $next($request, $response);    }    }例如在这个 SO 答案和这个 Slim discourse answer中。问题是我无法将重定向和 HTTP 403 结合使用。据我所知,正常的 HTTP 重定向仅限于HTTP 代码 3xx。实际上,上面的代码在与 example 一起使用时可以正常工作302。我是否遗漏了某些东西,或者所有答案都结合起来withRedirect并且403“不正确”(因为不会导致用户浏览器的实际重定向)?
查看完整描述

1 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

如果您的应用程序是使用 Web 浏览器访问的 HTML 网站,则浏览器仅在状态码为 1 时才会重定向3xx

如果您的应用程序是使用 HTTP 客户端访问的 API,那么您有更多的余地。对于 API,您可以使用403401状态代码来指示未经授权无法完成请求。您还可以包含一个Location标头来告诉客户去哪里获得授权,但当然,如果他们跟进该链接,则取决于客户。


查看完整回答
反对 回复 2022-07-16
  • 1 回答
  • 0 关注
  • 161 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信