我需要安全令牌才能连接到 Salesforce API 吗?

Do I need security token to connect to Salesforce API?

我正在尝试使用 JSForce

连接到 Salesforce SOAP API
const connection = new jsforce.Connection({
  loginUrl: "https://customdomain.my.salesforce.com",
});
await connection.login(username, password);

当我 运行 出现以下错误时

Error: INVALID_LOGIN: Invalid username, password, security token; or user locked out.
    at /Users/juancaicedo/code/calm/salesforce-poc/node_modules/jsforce/lib/connection.js:1552:13
    at tryCallOne (/Users/juancaicedo/code/calm/salesforce-poc/node_modules/promise/lib/core.js:37:12)
    at /Users/juancaicedo/code/calm/salesforce-poc/node_modules/promise/lib/core.js:123:15
    at flush (/Users/juancaicedo/code/calm/salesforce-poc/node_modules/asap/raw.js:50:29)
    at processTicksAndRejections (internal/process/task_queues.js:75:11)
(Use `node --trace-warnings ...` to show where the warning was created)

这是一种好的身份验证方式,还是我应该做其他事情?我在其他地方看到过安全令牌,这是首选吗?

备注

我能够使用这些凭据成功登录到 Salesforce UI ✅

我愿意使用另一个 Node.js 库,但确实需要使用 SOAP API(使用 REST API 是不够的)。

一些 Salesforce 组织也需要传递安全令牌。您可能会找到您的令牌并尝试在您的 API 调用中传递它。

https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_concepts_security.htm

如果您在 salesforce 中使用 jsforce,在这种情况下,您可以使用以下代码片段直接获取连接对象:

var conn = new jsforce.Connection({ accessToken: '{!$Api.Session_Id}' });

如果您想从外部系统连接,您可以采用以下任一方式:

  • 使用访问令牌和实例URL
  • 使用用户名和密码

根据您各自的库指定密钥。

注意:如果您遵循用户名和密码流程,在这种情况下,您必须在密码末尾附加安全令牌才能成功验证.您可以通过转到您的用户销售人员设置来获取该安全令牌。

对于node JS你可以参考这个包: https://www.npmjs.com/package/node-salesforce