# @0xgw/passport-forcedotcom 中文文档

规范地址：https://npmcn.com/package/%400xgw/passport-forcedotcom/

版本：1\.0\.0
npm 元数据更新时间：2022-04-04T10:29:02.558Z
中文译文更新时间：2026-11-06T03:39:41.956Z
软件包许可：BSD-3-Clause

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

原始 npm 页面：https://www.npmjs.com/package/%400xgw/passport-forcedotcom
原文对照：https://npmcn.com/package/%400xgw/passport-forcedotcom/?lang=original
项目主页：https://github.com/0xGW/passport-forcedotcom#readme
源码仓库：https://github.com/0xGW/passport-forcedotcom

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

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

## 中文简介

Salesforce.com / Force.com / Database.com 护照认证策略.

## 安装

```sh
npm install @0xgw/passport-forcedotcom
```

也可以使用：`pnpm add @0xgw/passport-forcedotcom`、`yarn add @0xgw/passport-forcedotcom`、`bun add @0xgw/passport-forcedotcom`

## README

# 护照强制操作

![SalesForce](https://raw.github.com/joshbirk/passport-forcedotcom/master/images/sf.png)

这是一个战略,与 [护照JS](http://passportjs.org/) 与 Force.com平台(指您可以使用Saleforce CRM,您的 Force.com) (原始内容存档于2018-10-22). applications and Database.com.

**请注意** 截至0.1.0版本,成功认证现在的结果 在标准中 [PassportJS 用户配置](http://passportjs.org/guide/profile/) 对象.

### 使用量

1.  下载此 npm 模块

```sh
npm install --save passport-forcedotcom
```

2.  导入到您的应用程序中

```javascript
var passport = require("passport");
var ForceDotComStrategy = require("passport-forcedotcom").Strategy;
```

3.  使用您的申请资格和资料定义策略

```javascript
passport.use(
  new ForceDotComStrategy(
    {
      clientID: "{client_id}",
      clientSecret: "{client_secret}",
      scope: ["id", "chatter_api"],
      callbackURL: "https://my.example.com/auth/forcedotcom/callback",
    },
    function verify(token, refreshToken, profile, done) {
      console.log(profile);
      return done(null, profile);
    }
  )
);
```

4.  然后设置一些路线 传递流

```javascript
app.get("/auth/forcedotcom", passport.authenticate("forcedotcom"), {
  display: "page", // valid values are: "page", "popup", "touch", "mobile"
  prompt: "", // valid values are: "login", "consent", or "login consent"
  login_hint: "", // optional: the user's SalesForce email address or username
  state: "", // optional: an aribrary URL encoded string that will get passed back to you
});
// this should match the callbackURL parameter above:
app.get(
  "/auth/forcedotcom/callback",
  passport.authenticate("forcedotcom", { failureRedirect: "/error" }),
  function (req, res) {
    res.render("index", checkSession(req));
  }
);
```

而与通常的护照一样,可以更新用户序列化/去序列化.

这个 `login_hint` 参数可以被 SalesForce用于登录表单上的用户名字段的预集. 不过这似乎不太可靠 见 [销售部队OAuth 文档](https://help.salesforce.com/articleView?id=remoteaccess_oauth_web_server_flow.htm&type=0) 更多细节.

这个 `state` 参数是有用的,如果您需要从启动与 SalesForce 的登录到用户重定向到您的应用程序之间保持用户信息。 这样可以避免依赖饼干来维持任何状态信息. 例如,您可以使用这个来跟踪用户在开始登录进程前试图访问的页面. 如果你通过一个 `state` 绳子就应该是 [URL 编码](https://en.wikipedia.org/wiki/Percent-encoding)。 。 。 .

### 创建连接的应用程序

为了使用这个策略,你需要有一个 [已连接 应用](https://help.salesforce.com/apex/HTViewHelpDoc?id=connected_app_overview.htm) 在销售部队内部。 见 [这个 条款](https://help.salesforce.com/apex/HTViewHelpDoc?id=connected_app_create.htm) 用于详细且最新的连接 App 创建指令.

提示 :

-   请注意: `client_id` 称为“消费者钥匙” `client_secret` 在一些UI和 文档.
-   请确定将连接的 App 的回调 URL 设置到相同的设置中 b. 《公约》 `new ForceDotComStrategy` 建筑师。 如果你在用的话 `express`,那么您附加的路由也必须对应此 URL(例如. `app.get('/auth/forcedotcom/callback', ...)`
-   获取一个 `photos` 节次 [用户 简介](http://passportjs.org/guide/profile/) 你需要设置 `api` 或者说 `chatter_api` 创建 Connected App 时的范围.
    -   图片的 URL 持续 ~ 30 天
    -   如果您不需要照片,请提供 `skipPhoto: true` 选项 `ForceDotComStrategy` 构造器并仅启用 `id` 范围.

### 示例

有一个实例应用叫做 `simple-example` 用于: `examples/` 文件夹。 这显示了如何使用"ForceDotCom-Passport",并附有许多评论. 本地运行 :

1.  打开 `app.js` 内 `examples/simple-example`
2.  设定 `CF_CLIENT_ID`, (中文(简体) ), `CF_CLIENT_SECRET`, (中文(简体) ), `CF_CALLBACK_URL` 并选择, `SF_AUTHORIZE_URL`, (中文(简体) ), `SF_TOKEN_URL` 以匹配您的连接应用程序的设置.
3.  通过运行安装 npm 模块 `npm install`
4.  运行 : `node app.js`
5.  打开 `localhost:3000` 在浏览器中尝试使用 OAuth 登录.

### 维护者

-   [胶片工作](https://twitter.com/_gluework)

### 作者数

-   [约书亚·伯克](https://twitter.com/joshbirk)
-   [拉贾·拉奥DV](https://twitter.comrajaraodv/)
-   [贾里德·汉森](https://twitter.com/jaredhanson) - 说吧 他们的帮助解决了以前处理即将到来的OAuth的问题 信息,这样的事情 `instance_url` 可以随时提供.
-   Goinstant(现为"销售力量")的团队确保了它的生产价值.
-   更新、生活质量提高、 [杰森・根特](http://absurdnerd.co/) 财务报告和审定财务报表 [法比亚雅克布斯](https://c9.io/)。 。 。 .

## 常见问题

### @0xgw/passport-forcedotcom 是什么？

Salesforce\.com / Force\.com / Database\.com 护照认证策略\.

### 如何安装 @0xgw/passport-forcedotcom？

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

### @0xgw/passport-forcedotcom 支持 TypeScript 吗？

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

### @0xgw/passport-forcedotcom 支持 ESM 还是 CommonJS？

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

### @0xgw/passport-forcedotcom 需要什么版本的 Node\.js？

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

### @0xgw/passport-forcedotcom 可以商用吗？

@0xgw/passport-forcedotcom 使用 BSD-3-Clause 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。另外不得用原作者名义为衍生产品背书。以上为概括，不构成法律意见，请以许可原文为准。

### @0xgw/passport-forcedotcom 的下载量有多少？

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

### @0xgw/passport-forcedotcom 还在维护吗？

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

