关于api:在Salesforce中获取{“error”:“invalid_grant”,“error_description”:“身份验证失败”}?

Getting {“error”:“invalid_grant”,“error_description”:“authentication failure”} in Salesforce?

我正在尝试获取Salesforce PartialBox的会话ID。

我的代码:

1
curl https://test.salesforce.com/services/oauth2/token -d"grant_type=password" -d"client_id=definitely the correct client id" -d"client_secret=definitely the correct client secret" -d"[email protected]" -d"password=passandsecuritytoken"

我还做了什么:

  • 在已连接的应用程序设置中授予完全访问权限
  • 将IP限制设置为释放IP限制
  • "所有用户都可以自行授权"
  • 双重检查通行证、客户端ID、客户端机密、用户名

我仍然得到错误{"error":"invalid_grant","error_description":"authentication failure"}

我搜索了SF论坛和StackOverflow问题,但找不到任何解决方案。有人知道这里还有什么问题吗?


Salesforce要求在2017年7月22日之前升级到TLS 1.1或更高版本,以符合安全和数据完整性方面的行业最佳实践:请访问help.salesforce.com。

如果您使用的.NET版本早于4.6,请尝试添加以下代码:

1
2
System.Net.ServicePointManager.SecurityProtocol =
SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

另一个选项是编辑注册表:

1
2
3
4
5
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001

请检查此链接以获取更详细的答案:.NET 4.5中的默认安全协议


我还是很困惑,我不知道到底发生了什么,但我也遇到了你同样的问题,我可以通过以下操作来"修复"它。

首先,放宽应用程序的IP限制。

管理应用程序->已连接的应用程序->(我的应用程序的名称)

然后将"IP放宽"设置为"放宽IP限制"。

据我所知,我正在使用的沙盒应用程序中没有IP限制,但我对此还是个新手,所以可能它们隐藏在某个地方。

其次,在我的curl命令中,看起来很像您的命令,我遗漏了安全令牌,所以password字段只是密码。

我不知道我是否已经解决了我的问题,但我正在返回一个访问令牌,而不是"无效授予"错误。

我计划做一些额外的调查来弄清楚到底发生了什么,但我想,当我提出这个问题时,我会确保这个答案在这里。


确保您已经完成了这些步骤。

*应用程序->管理已连接的应用程序->(我的应用程序的名称)->编辑应用程序->OAuth策略然后将"允许用户"设置为"所有用户可以自行授权"。

*管理应用程序->已连接的应用程序->(我的应用程序的名称)然后将"IP放宽"设置为"放宽IP限制"。

尝试在启用了tls 1.1的情况下发出curl请求

curl -v https://login.salesforce.com/services/oauth2/token -d"grant_type=password" -d"client_id=xxxxxxxxxxXXXXXXXXXX" -d"client_secret=123456789" -d"[email protected]" -d"password=xxxxxxxxxx"


以下是我在Salesforce沙盒中的设置。

所以基本上我已经将我的RESTAPI用户的配置文件添加到了应用程序配置文件列表中。

我的要求是:

1
POST: https://login.salesforce.com/services/oauth2/token?grant_type=password&client_id=3MVG1ZL0ppGP2UrDck7ipSVNGs9s17mpIc3mRacC8Y_9o3r_amXxZZaasoBFbUF_r0aUvaFtIoxxx3Y5qik5&client_secret=6412349245332722664&[email protected]&password=XXXX