Express 401重定向不会自动发生

时间:2016-11-20 02:26:19

标签: node.js redirect express

遇到无权访问网页时我使用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

我的印象是重定向是自动的,但也许不是?有什么见解吗?

1 个答案:

答案 0 :(得分:4)

401不是重定向状态。无论如何,只需使用常规(303)重定向 - 401 is invalid if you’re not sending a WWW-Authenticate header