# @dmapper/passport-oauth2 中文文档

规范地址：https://npmcn.com/package/%40dmapper/passport-oauth2/

版本：1\.0\.0
npm 元数据更新时间：2026-05-01T14:28:52.039Z
中文译文更新时间：2026-11-12T12:59:08.656Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40dmapper/passport-oauth2
原文对照：https://npmcn.com/package/%40dmapper/passport-oauth2/?lang=original
项目主页：https://github.com/zheoreh/passport-oauth2#readme
源码仓库：https://github.com/zheoreh/passport-oauth2

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：38.6 kB，21 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>= 0\.4\.0
- 运行依赖：5 个
- 首次发布：2022-08-08T15:41:40.766Z
- 最新版本发布：2022-08-08T15:41:40.941Z
- 近 30 天下载量：3708（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：1（近 12 个月 0 个）

## 中文简介

OAuth 2.0护照认证策略.

## 安装

```sh
npm install @dmapper/passport-oauth2
```

也可以使用：`pnpm add @dmapper/passport-oauth2`、`yarn add @dmapper/passport-oauth2`、`bun add @dmapper/passport-oauth2`

## README

# 护照2

此分叉执行可选的回调函数, 用于通过客户端 ID 和 secret 每次在认证前直接访问 Oauth2 。 此函数称为 带有请求对象.

```js
passport.use(new OAuth2Strategy({
    authorizationURL: 'https://www.example.com/oauth2/authorize',
    tokenURL: 'https://www.example.com/oauth2/token',
    getClient: async function(req) {
      // some possible async operations
      // ...
      return {
        id: '#####',
        secret: '#####'
      }
    },
    callbackURL: "http://localhost:3000/auth/example/callback"
  },
  function(accessToken, refreshToken, profile, cb) {
    User.findOrCreate({ exampleId: profile.id }, function (err, user) {
      return cb(err, user);
    });
  }
));
```

\====================================================================================

OAuth 2.0认证战略 [护照](http://passportjs.org/)。 。 。 .

本模块允许您在节点.js应用程序中使用 OAuth 2. 0 认证. 通过插入Passport,OAuth 2.0认证可以轻松和 毫无侵扰地融入任何支持 [连接](http://www.senchalabs.org/connect/)\- 型式中间器件,包括 [快递](http://expressjs.com/)。 。 。 .

注意这一策略提供了通用的OAuth 2.0支持. 在许多情况下,a 可采用针对供应商的战略,以减少不必要的 配置,并包含任何特定提供者的突触。 见 [列表](https://github.com/jaredhanson/passport/wiki/Strategies) 用于支助 供养者.

需要针对 OAuth 2. 0 提供者执行认证的开发者 鼓励尚未获得支持的单位对该战略进行分级。 狦 请选择打开源码 列表,以便其他人可以找到它.

* * *

广告  
[学习 OAuth 2. 0 - 作为API 安全专家开始](https://click.linksynergy.com/link?id=D*o7yui4/NM&offerid=507388.380582&type=2&murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Flearn-oauth-2%2F&u1=5I2riUEiNIRjPjdjxj6X4exzu3lhRkWY0et6Y8eyT3)  
想象一下,如果你在OAuth有8500个满意的学生, 你的职业生涯会怎样

* * *

[![npm](https://img.shields.io/npm/v/passport-oauth2.svg)](https://www.npmjs.com/package/passport-oauth2) [![build](https://img.shields.io/travis/jaredhanson/passport-oauth2.svg)](https://travis-ci.org/jaredhanson/passport-oauth2) [![coverage](https://img.shields.io/coveralls/jaredhanson/passport-oauth2.svg)](https://coveralls.io/github/jaredhanson/passport-oauth2) [.](https://github.com/jaredhanson/passport-oauth2/wiki/Status)

## 安装

```
$ npm install passport-oauth2
```

## 使用量

#### 配置策略

OAuth 2.0 认证策略使用第三方认证用户 账户和OAuth 2.0 令牌。 供应商的 OAuth 2.0 端点以及 客户身份识别和秘密,指定为选项。 战略 需要一个 `verify` 接收访问符和配置文件的回调, 和电话 `cb` 提供用户.

```js
passport.use(new OAuth2Strategy({
    authorizationURL: 'https://www.example.com/oauth2/authorize',
    tokenURL: 'https://www.example.com/oauth2/token',
    clientID: EXAMPLE_CLIENT_ID,
    clientSecret: EXAMPLE_CLIENT_SECRET,
    callbackURL: "http://localhost:3000/auth/example/callback"
  },
  function(accessToken, refreshToken, profile, cb) {
    User.findOrCreate({ exampleId: profile.id }, function (err, user) {
      return cb(err, user);
    });
  }
));
```

#### 认证请求

使用 `passport.authenticate()`,指定 `'oauth2'` 战略 认证请求.

例如,作为路由中间软件在一个 [快递](http://expressjs.com/) 应用程序 :

```js
app.get('/auth/example',
  passport.authenticate('oauth2'));

app.get('/auth/example/callback',
  passport.authenticate('oauth2', { failureRedirect: '/login' }),
  function(req, res) {
    // Successful authentication, redirect home.
    res.redirect('/');
  });
```

## 相关模块

-   [护照1](https://github.com/jaredhanson/passport-oauth1) OAuth 1.0认证战略
-   [护照持有者](https://github.com/jaredhanson/passport-http-bearer) – APIs的接头符认证策略
-   [认证2orize](https://github.com/jaredhanson/oauth2orize) — OAuth 2. 0 授权服务器工具包

## 捐款

#### 测试

测试套房位于 `test/` 目录。 所有的新特点都是 预计将有相应的测试案例。 确保完整的测试套件 通过执行:

```bash
$ make test
```

#### 覆盖范围

所有新功能的开发预计将有测试覆盖. 补丁 英克瑞斯的测试覆盖率是愉快的接受的。 覆盖面报告可通过下列方式查阅: 执行 :

```bash
$ make test-cov
$ make view-cov
```

## 许可证

[麻省理工学院许可证](http://opensource.org/licenses/MIT)

版权(c)2011-2016年Jared Hanson <[http://jaredhanson.net/ (中文(简体) )](http://jaredhanson.net/)\> 翻译:

## 常见问题

### @dmapper/passport-oauth2 是什么？

OAuth 2\.0护照认证策略\.

### 如何安装 @dmapper/passport-oauth2？

在项目目录运行 npm install @dmapper/passport-oauth2，或使用 pnpm add / yarn add / bun add。

### @dmapper/passport-oauth2 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/dmapper\_\_passport-oauth2 是否存在。

### @dmapper/passport-oauth2 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @dmapper/passport-oauth2 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>= 0\.4\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @dmapper/passport-oauth2 可以商用吗？

@dmapper/passport-oauth2 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @dmapper/passport-oauth2 的下载量有多少？

根据 npm 官方下载统计，@dmapper/passport-oauth2 在 2026/10/13 – 2026/11/11 这 30 天内被下载 3,708 次，日均约 124 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @dmapper/passport-oauth2 还在维护吗？

最新版本 1\.0\.0 发布于 2022/08/08（4 年前）；至今共发布 1 个版本，其中过去 12 个月发布了 0 个；首次发布于 2022/08/08。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

