遇到无权访问网页时我使用401重定向用户的情况。我在其中一条路线中有这个:
res.redirect(401, '/login');
看起来很简单,但是应用程序可以将用户重定向到/login
。它只是位于类似这样的页面上:
Unauthorized. Redirecting to /login
标题也很好看:
HTTP/1.1 401 Unauthorized
X-Powered-By: Express
Location: /login
Vary: Accept
Content-Type: text/html; charset=utf-8
Content-Length: 63
set-cookie: connect.sid=stuff; Path=/; HttpOnly
Date: Sun, 20 Nov 2016 02:20:07 GMT
Connection: keep-alive
奇怪的是,如果省略状态,重定向通常会发生:
res.redirect('/login'); // doesn't hang on page, redirect occurs immediately
我的印象是重定向是自动的,但也许不是?有什么见解吗?
答案 0 :(得分:4)
401不是重定向状态。无论如何,只需使用常规(303)重定向 - 401 is invalid if you’re not sending a WWW-Authenticate
header。