使用护照js保护节点js中的路由

Posted

技术标签:

【中文标题】使用护照js保护节点js中的路由【英文标题】:Protecting route in node js with passport js 【发布时间】:2020-02-13 12:56:14 【问题描述】:

我有一个快速应用程序,其主要服务器代码在 server.js 文件中。在 server.js 文件中有一个路由 app.get('/dashboard',require('./dashboard/dashboard.js')

dashboard.js 文件中,我有许多路由,例如 /profile/editProfile 等。现在为了保护我的所有 /dashboard 路由,我应该对每条路由实施 req.isAuthenticated() 吗?或者有没有其他方法可以通过实现单一身份验证功能来保护我所有的/dashboard 路由?

【问题讨论】:

【参考方案1】:

创建一个中间件并将其添加到您的 /dashboard 中,如下所示: app.get('/dashboard', checkAuthentication , require('./dashboard/dashboard.js')

在这里解释:https://***.com/a/38820680/2988950

【讨论】:

【参考方案2】:

您可以在到达仪表板路由之前传递一个中间件函数。

app.get('/dashboard',
(req, res, next) => 
  // Run passport isAuthenticated() here.
  // If true, next();
  // If false, throw
,
require('./dashboard/dashboard.js');

【讨论】:

我们必须在这里用 app.use() 替换 app.get()。它现在可以工作了。谢谢。

以上是关于使用护照js保护节点js中的路由的主要内容,如果未能解决你的问题,请参考以下文章

节点js快速路由[无法获取:/collection#] [重复]

JSON Web Token Auth Service - 检查单独服务器上的状态以保护路由。节点JS

node.JS Express 护照路由

保护 Node.js 中的 API 路由

护照认证回调不调用护照中间件

如何保护 express.js 中的路由?