passport策略之passport-http-bearer使用token保护API
发布日期:2021-05-28 16:22:02 浏览次数:33 分类:精选文章

本文共 1407 字,大约阅读时间需要 4 分钟。

Passport HTTP 承载身份验证策略指南

简介

Passport的HTTP承载身份验证策略专为Node.js应用设计,支持使用RFC 6750所规定的承载令牌对HTTP请求进行身份验证。由于承载令牌通常用于保护API端点且常结合OAuth 2.0进行发行,您可以轻松将其集成到兼容Express的任何中间件或框架中。

安装

在需要的项目目录中运行以下命令以安装Passport HTTP 承载身份验证策略:

$ npm install passport-http-bearer

使用方法

配置

在通用中间件框架(如Express)中使用HTTP承载身份验证策略,您需要执行以下步骤:

依赖导入

首先,导入Passport模块及HTTP承载身份验证策略:

const passport = require('passport');  const BearerStrategy = require('passport-http-bearer').Strategy;

模型注册

然后,在Passport中注册新的承载令牌策略:

passport.use(new BearerStrategy({    tokenGenerated: function (token, done) {      // 提供认证回调(根据您的需求扩展逻辑)      done(null, { _id: token.user_id });    },    userInfo: (token, decide) => {      // 提供附加信息处理逻辑      decide(null, {        id: token.user_id,        email: token.email      });    },    scope: (token, decide, callback) => {      // 定义令牌范围,Passport会将这些信息存储在req.authInfo中      decide(null, {        range: token.scope,        client: token.client_id      });    }  }));

应用与集成

在HTTP路由中,添加中间件策略:

passport.authenticate('bearer', { session: false }, function(err, user, info, context, callback) {    if (err) return callback(err);    return callback(null, user, info, context);  });

调用流程

在发起请求时,客户端应在Authorization头字段添加Bearer <token>

GET /api/protected-resource HTTP/1.1  Authorization: Bearer abc123

计划解决方案

  • 令牌验证:确保API标识符按预期接收并解析。
  • 权限控制:通过req.authInfo指定的范围来执行授权逻辑。
  • 错误处理:确保沙盒良好地处理令牌无效或签名失效的情形。

通过以上步骤,您可以轻松地在Node.js应用程序中集成功能,保护API端点,提升整体安全性。

上一篇:npm入门之简介
下一篇:passport策略之passport-jwt使用jwt保护API

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月29日 14时03分47秒