Salesforce 是一款业界广泛使用的 CRM 系统,同时也提供面向开发者的 API 给开发者使用。在使用 Salesforce API 的过程中,需要进行身份验证。其中 JWT 身份验证是一种常见的身份验证方式,通过使用 JSON Web Token (JWT) 让 Salesforce 确认 API 调用者的身份。
new-salesforce-jwt 是一个基于 Node.js 平台的 npm 包,可以帮助开发者更方便地实现 JWT 身份验证,并调用 Salesforce 的 API。本篇文章将详细介绍 new-salesforce-jwt 的使用方法。
详细步骤
安装 new-salesforce-jwt 包
在终端中执行以下命令,来安装 new-salesforce-jwt 包:
npm install new-salesforce-jwt
导入包并进行配置
首先,通过以下代码导入 new-salesforce-jwt 包。
const jwt = require('new-salesforce-jwt');
然后,你需要通过传递包含以下参数的配置对象,来进行配置:
const config = { clientId: 'YOUR_CLIENT_ID', privateKey: 'YOUR_PRIVATE_KEY', redirectUri: 'YOUR_REDIRECT_URI', environment: 'sandbox' }; jwt.configure(config);
具体的参数说明如下:
clientId
:你的 Salesforce 应用程序的客户端 ID。privateKey
:用于签名 JWT 令牌的私钥。redirectUri
:你的 Salesforce 应用程序的重定向 URI。environment
:指定运行环境,可取值sandbox
或production
,默认为sandbox
。
创建 JWT 令牌
在配置完成后,可以使用下面的代码来创建 JWT 令牌。
const jwtToken = jwt.generateToken({ sub: 'user@email.com'});
其中,
{ sub: 'user@email.com'}
是包含sub
值的载荷,它是一个唯一的用户标识符。使用 JWT 令牌进行身份验证
创建 JWT 令牌后,使用以下代码将其发送到 Salesforce 进行身份验证:
jwt.authenticate(jwtToken) .then((response) => { console.log('Access Token: ' + response.access_token); }) .catch((error) => { console.log(error); });
如果身份验证成功,
authenticate
方法将返回安全令牌。可以使用安全令牌来调用 Salesforce API。调用 Salesforce API
在获得安全令牌之后,可以通过以下代码使用它来调用 Salesforce API:
-- -------------------- ---- ------- ----- ----------- - -------------------- ------------- ---- ------------------------------- ------- ------ -------- - ---------------- ------- - - ----------- - ------------------ -- - ---------------------- ---------------- -- - ------------------- ---
其中,
accessToken
是上一步获得的安全令牌,YOUR_SALESFORCE_API_ENDPOINT
是需要调用的 Salesforce API 的端点。
深入理解
- JWT
JWT 是一种用于身份验证和授权的开放标准。它允许安全地通过网络传输声明,以及对声明进行数字签名以验证其真实性。JWT 通常由三部分组成:头部、载荷和签名。
- 头部
头部通常由两部分组成:令牌类型和所使用的加密算法。例如,下面是一个采用 HS256 加密算法的 JWT 的头部:
{ "alg": "HS256", "typ": "JWT" }
- 载荷
载荷包含关于用户或者其他一些标识的信息。这些信息称为声明,主要由标准声明(registered claims)、公共声明(public claims)和私有声明(private claims)组成。
- 签名
签名是由两部分组成的,第一部分将头部和载荷组合在一起,第二部分是使用私钥对第一部分进行加密后的结果。
- new-salesforce-jwt
new-salesforce-jwt 是一个简单易用的 npm 包,它封装了使用 JWT 身份验证和调用 Salesforce API 的操作,并提供了方便的 API 进行调用。
示例代码
以下是一个完整的示例代码,可以帮助你更好地理解 new-salesforce-jwt 的使用方法:
-- -------------------- ---- ------- ----- --- - ------------------------------ ----- ------ - - --------- ----------------- ----------- ------------------- ------------ -------------------- ------------ --------- -- ---------------------- ----- -------- - ------------------- ---- ------------------- -------------------------- ---------------- -- - ------------------- ------ - - ----------------------- ----- ----------- - ---------------------- ------------- ---- ------------------------------- ------- ------ -------- - ---------------- ------- - - ----------- - ------------------ -- - ---------------------- ---------------- -- - ------------------- --- -- -------------- -- - ------------------- ---
以上就是使用 new-salesforce-jwt 包完成 JWT 身份验证和 Salesforce API 调用的详细步骤和示例代码。希望本文能够帮助你加深对该 npm 包的理解,以及更好地使用该库来提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055d2481e8991b448dad8d