You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需用户名密码完成Salesforce REST API的OAuth2授权方案咨询

Salesforce服务端OAuth2授权方案(无用户名密码存储版)

该场景完全适配OAuth 2.0的授权码流(Authorization Code Flow),全程不需要在你的系统中存储用户的Salesforce账号密码,仅用你提到的client_id、client_secret、重定向URL三个核心参数即可完成完整授权。

前置准备

  • 先在Salesforce后台的Connected App配置中开启OAuth设置,填写你正式使用的重定向URL,权限范围至少勾选api(需要长期免授权访问还要额外勾选refresh_token),同时确认Connected App的IP限制、用户权限配置符合业务要求。
  • 提前获取三个核心参数:client_id(即Connected App的Consumer Key)、client_secret(即Consumer Secret)、已经在Connected App中配置完成的重定向URL。

完整授权流程步骤

步骤1:构造用户授权跳转链接

服务端生成授权跳转链接,引导用户跳转到Salesforce官方授权页面,链接格式如下:

https://<Salesforce实例域名>/services/oauth2/authorize?response_type=code&client_id=<你的client_id>&redirect_uri=<你的重定向URL>&scope=api refresh_token

说明:沙箱环境实例域名为test.salesforce.com,生产环境为login.salesforce.com,也可替换为你的组织自定义域名。用户跳转到该链接后会在Salesforce官方页面完成账号密码登录、授权操作,你的系统全程不会接触到用户的账号凭证。

步骤2:接收授权码

用户在Salesforce完成授权后,Salesforce会自动跳转到你配置的重定向URL,同时在请求的查询参数中附带code参数(即授权码),你直接在重定向接口的请求参数中提取该值即可。
注意:授权码有效期仅15分钟,且只能使用一次,拿到后需要尽快完成令牌兑换

步骤3:授权码兑换访问令牌+刷新令牌

服务端后台发起POST请求到Salesforce令牌接口,该操作完全在服务端完成,不需要用户参与:

  • 请求地址:https://<Salesforce实例域名>/services/oauth2/token
  • 请求头:Content-Type: application/x-www-form-urlencoded
  • 请求参数:
    • grant_type:固定填authorization_code
    • client_id:你的client_id
    • client_secret:你的client_secret
    • redirect_uri:和前序步骤完全一致的重定向URL
    • code:上一步拿到的授权码

请求成功后会返回核心字段:

  • access_token:访问Salesforce API的临时凭证,通常有效期2小时
  • refresh_token:长期刷新凭证(除非用户主动撤销授权),可用来刷新过期的access_token
  • instance_url:当前授权用户对应的Salesforce实例域名,后续所有API调用都使用该域名

步骤4:后续API调用&令牌刷新

  • 调用Salesforce业务API时,只需要在请求头中携带Authorization: Bearer <access_token>即可
  • access_token过期后不需要用户重新授权,直接用refresh_token后台兑换新的access_token即可,请求参数如下:
    • 请求地址和请求头和兑换令牌接口一致
    • grant_type:固定填refresh_token
    • client_id:你的client_id
    • client_secret:你的client_secret
    • refresh_token:之前存储的刷新凭证

安全注意事项

  • 你的系统仅需要存储access_token、refresh_token、instance_url三个值即可,完全不需要存储用户的Salesforce账号密码,符合你的要求
  • client_secret、refresh_token属于高敏感信息,必须加密存储,禁止明文保存在配置文件、前端代码中
  • 重定向URL需要使用HTTPS协议,避免授权码被网络拦截
  • 如果用户在Salesforce端撤销了Connected App的授权,你存储的refresh_token会直接失效,引导用户重新走一遍授权流程即可

内容的提问来源于stack exchange,提问作者Anu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:45:04