当前位置: 首页 > 面试题库 >

如何使用PassportJS保护API端点?

公羊喜
2023-03-14
问题内容

我的应用程序使用Express和AngularJS。我正在使用express通过静态处理角度代码的基本网络设置。角度代码使用的服务会影响express托管的API端点。我只希望用户经过身份验证后才能访问API端点。如何通过PassportJS完成此操作?


问题答案:

我已经在github上上传了一个Angular-Express 项目。

仍在进行中。希望对您有所帮助。

它使用PassportJs进行用户身份验证,并且是服务器端授权的基本示例。它演示了如何使API调用仅对经过身份验证的用户或具有管理员角色的用户可用。这在实现server/routes.js调用中间件功能ensureAuthenticated,并且ensureAdmin其在所定义server/authentication.js

在routes.js中

// anybody can access this 
app.get('/api/test/users', 
        api.testUsers);


// only logged-in users with ADMIN role can access this 
app.get('/api/users',          
        authentication.ensureAdmin,
        api.testUsers);

// only logged-in users can access this
app.get('/api/books', 
        authentication.ensureAuthenticated, 
        api.books);

在authentication.js中

ensureAuthenticated: function(req, res, next) {
    if (req.isAuthenticated()) {
       return next();
    } else {
       return res.send(401);
    }
},

ensureAdmin: function(req, res, next) {
  // ensure authenticated user exists with admin role, 
  // otherwise send 401 response status
  if (req.user && req.user.role == 'ADMIN') {
      return next();
  } else {
      return res.send(401);
  }
},


 类似资料:
  • 但结果是这样的: 如果我使用了一些错误的api,或者整个原型来验证和保护我的后端api是不正确的。有人能帮我弄明白问题出在哪里吗?

  • 问题内容: 通常我跑步时总是得到这个输出,我确信每个人在跑步时都会得到。这不是全部输出,而是有关特定语句的。 正如标题所说的,我总是得到输出。如何确保端口ChromeDriver仅使用受保护的端口? 问题答案: 此信息消息… …是 ChromeDriver v2.46* 引发的错误的结果 * 分析 根据讨论,如果启用了详细日志记录,则2.46会生成意外的debug.log文件,在logging.c

  • 快速入门展示了使用 IdentityServer 保护 API 的最基础的场景。 在这个场景中,我们定义一个 API,同时定义一个 想要访问这个 API 的 客户端。客户端将从 IdentityServer 请求获得一个访问令牌,然后用这个令牌来获得 API 的访问权限。 定义 API 范围(Scopes)用来定义系统中你想要保护的资源,比如 API。 由于当前演练中我们使用的是内存配置 —— 添

  • 目前我有一个使用msal对用户进行身份验证的react前端。js(Azure AD B2C)。后端API是用.NET Core构建的,目前任何人都可以访问。 我想保护API,这样只有在前端经过身份验证的用户才能访问API。 有没有关于如何实现这一点的文档/示例应用程序?

  • 问题内容: 我知道保护REST API是一个被广泛评论的话题,但是我无法创建一个符合我的标准的小型原型(并且我需要确认这些标准是现实的)。如何保护资源以及如何使用Spring安全性有很多选择,我需要弄清楚我的需求是否现实。 我的要求 基于令牌的身份验证器-用户将提供其凭据,并获得唯一且受时间限制的访问令牌。我想在自己的实现中管理令牌的创建,检查有效性和到期时间。 某些REST资源将是公开的-完全不

  • 本文向大家介绍.NET core 3.0如何使用Jwt保护api详解,包括了.NET core 3.0如何使用Jwt保护api详解的使用技巧和注意事项,需要的朋友参考一下 摘要: 本文演示如何向有效用户提供jwt,以及如何在webapi中使用该token通过JwtBearerMiddleware中间件对用户进行身份认证。 认证和授权区别? 首先我们要弄清楚认证(Authentication)和授权