首页 > 解决方案 > JSforce - 如何使用 OAuth2 而不将用户重定向到 Salesforce 页面以获得授权?

问题描述

我想使用 JSforce 通过 OAuth2 方法从 node.js 后端连接到 Salesforce,但它需要将用户重定向到 Salesforce 页面以获得授权。是否可以在没有用户交互的情况下获得授权?

我在这里关注文档

授权请求

首先,您应该将用户重定向到 Salesforce 页面以获得授权。您可以通过 OAuth2#getAuthorizationUrl(options) 获取 Salesforce 授权页面 URL。

标签: salesforcejsforce

解决方案


OAuth 支持多种流程,适用于不同场景:

  1. 如果您想连接到您的应用程序用户之一的Salesforce 实例,您将使用您在问题中引用的OAuth 授权代码授权。它确实需要您通过基于浏览器的授权流程引导您的应用程序用户,该流程重定向到 Salesforce,然后返回您的应用程序。该过程以您的应用程序获取可与 jsforce 一起使用的 Salesforce API 的访问令牌结束。如果您的应用程序需要随着时间的推移访问您用户的 Salesforce 实例,在这个基于浏览器的初始流程中,您还可以请求颁发刷新令牌。然后,您的应用可以稍后使用刷新令牌来获取新的访问令牌无需进一步的用户交互。在您的应用程序中实现集成时,身份验证只是要考虑的众多挑战之一。
  2. 如果您想从中间层的信任边界内连接到您自己拥有的 Salesforce 实例,则要使用的合适 OAuth 流程是OAuth 客户端凭据授权。在这种情况下,您只需向 jscforce 客户端提供您在 Salesforce 实例中配置的 OAuth 客户端的客户端 ID 和客户端密码。对于 jsforce,这在此处进行了记录。

推荐阅读