我已经实施了两条路线: app.post(' / login',passport.authenticate ....); app.get(' / admin',myfunction);
如果用户首先发帖登录,我将他重定向到/ admin。
如果用户直接获取/管理员该怎么办?我如何确保除非他已登录,否则不允许他访问/ admin并重定向到登录屏幕?
对于从应用程序访问的API,如果用户未通过护照验证,如何发送401?
答案 0 :(得分:3)
Passport是需要包含在需要路由保护的中间件
Passport.js是Express的中间件。您可以将其包含在需要保护的任何路由中,而不仅仅是在登录路由/页面上。
作为回顾,What does middleware and app.use actually mean in Expressjs?的已批准回答以及指向异地网页A short guide to Connect Middleware的此链接也可以提供帮助。
保护API路线
首先,要重复上述内容...... Passport是中间件,因此您需要将其包含在定义API的路由中。另外,请参阅:
对于401,如果您没有为自己编写自己的处理程序,Passport将在失败时为您生成这些。