Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oauth 2.0 协商来自另一个已注册应用的访问令牌_Oauth 2.0_Salesforce - Fatal编程技术网

Oauth 2.0 协商来自另一个已注册应用的访问令牌

Oauth 2.0 协商来自另一个已注册应用的访问令牌,oauth-2.0,salesforce,Oauth 2.0,Salesforce,通过在Salesforce中进行测试,我发现了一种通过做一些奇怪的事情来协商访问令牌的方法 下面是一个场景 我创建了两个帐户: phdezann+user01-mbpt@force.com phdezann+user02-8wl6@force.com 使用第二个帐户,我创建了一个新连接的应用程序,启用了启用OAuth设置,并获得了一对clientId和secretId,这是OAuth协议的一部分 然后,我通过以下方式请求授权码: https://login.salesforce.com/se

通过在Salesforce中进行测试,我发现了一种通过做一些奇怪的事情来协商访问令牌的方法

下面是一个场景

我创建了两个帐户:

  • phdezann+user01-mbpt@force.com
  • phdezann+user02-8wl6@force.com
使用第二个帐户,我创建了一个
新连接的应用程序
,启用了
启用OAuth设置
,并获得了一对clientId和secretId,这是OAuth协议的一部分

然后,我通过以下方式请求授权码:

https://login.salesforce.com/services/oauth2/authorize?client_id=&redirect_uri=http://localhost:8080&response_type=code

这里,这是有趣的部分,我使用user01登录,并设法在回调中获得授权代码

最后,我尝试将授权代码转换为访问令牌:

curl \
  --location \
  --request POST 'https://login.salesforce.com/services/oauth2/token' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'grant_type=authorization_code' \
  --data-urlencode 'code=<authorization_code_from_user01>' \
  --data-urlencode 'client_id=<client_id_of_user02_instance>' \
  --data-urlencode 'client_secret=<client_secret_of_user02_instance>' \
  --data-urlencode 'redirect_uri=http://localhost:8080'

我真的不明白这是怎么可能的,我肯定错过了一些东西。

这是设计的,是OAuth2的东西,不是真正的Salesforce的东西。 如果你想制作一个移动应用程序或与你的网站进行惊人的集成,那么要求每个管理员生成应用程序、将密钥粘贴到你的移动应用程序并分发给用户是不切实际的。。。你可以用你控制的一对钥匙发送你的应用程序,然后最终用户决定他们是否信任你,是否想继续,是否对你请求的访问级别感到满意

您可以将密钥粘贴到 或者按原样使用,达到你的高潮


另请参见和

这是设计的,它是OAuth2产品,而不是真正的Salesforce产品。 如果你想制作一个移动应用程序或与你的网站进行惊人的集成,那么要求每个管理员生成应用程序、将密钥粘贴到你的移动应用程序并分发给用户是不切实际的。。。你可以用你控制的一对钥匙发送你的应用程序,然后最终用户决定他们是否信任你,是否想继续,是否对你请求的访问级别感到满意

您可以将密钥粘贴到 或者按原样使用,达到你的高潮

另见和

{
  "access_token": "00D2X00000....",
  "signature": "CSfC0khkT7...",
  "scope": "api",
  "instance_url": "https://eu13.salesforce.com",
  "id": "https://login.salesforce.com/id/00D2X000003IgQFUA0/0052X00000AP6AdQAL",
  "token_type": "Bearer",
  "issued_at": "1596728532049"
}