首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用HTTP 403重定向

使用HTTP 403重定向
EN

Stack Overflow用户
提问于 2020-01-08 22:01:55
回答 1查看 2.4K关注 0票数 1

我正在使用Slim PHP,并希望将用户重定向到/login,如果他们没有登录,但试图访问一个页面,需要一个用户登录。在搜索如何构建我的中间件时,我发现到处都是这些代码的变体

代码语言:javascript
运行
复制
class Auth{    
    public function requireLogin(Request $request, Response $response, $next){
        if( !isLoggedIn() ) return $response->withRedirect('/login', 403);

        return $next($request, $response);
    }    
}

例如在this SO answerthis Slim discourse answer中。

问题是我不能让重定向和HTTP403的组合工作。据我所知,普通的HTTP重定向仅限于HTTP codes 3xx。实际上,上面的代码在与例如302一起使用时工作得很好。

是我漏掉了什么,还是所有结合了withRedirect403的答案都是“不正确的”(就像不会导致用户浏览器的实际重定向一样)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-14 23:16:42

如果您的应用程序是一个使用web浏览器访问的超文本标记语言网站,那么浏览器只有在状态代码为3xx代码时才会重定向。

如果您的应用程序是使用HTTP客户端访问的API,那么您有更多的回旋余地。对于应用编程接口,您可以使用403401状态代码来指示请求在未经授权的情况下无法满足。您还可以包含一个Location头来告诉客户端到哪里去获取授权,但当然,这取决于客户端是否跟进该链接。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59647524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档