如果没有可用的刷新令牌,如何刷新或撤销OAuth2.0 access / refresh_token?

时间:2012-05-16 22:25:57

标签: salesforce oauth-2.0

我正在沙盒环境中工作,试图弄清楚Chatter API调用 - 我在测试期间保存了我的刷新令牌,但之后丢失了。

现在,当我尝试点击API时,我收到以下错误:

"expired access/refresh token"

我现在如何解决这个问题?我没有刷新令牌,所以我无法请求刷新我的令牌,我不知道如何通过UI过期/删除/撤销它,以便我可以继续我的测试。

我的cUrl电话如下:

curl
    --form client_id=3MVG92.u...2KycWe
    --form client_secret=668...930
    --form grant_type=password
    --form username=mike....com
    --form password=*#()@*#$@
    --proxy 127.0.0.1:3128 --insecure
  https://test.salesforce.com/services/oauth2/token 

我尝试过的事情:

  • 重设密码
  • 删除远程访问并使用新的client_id / secret
  • 创建一个新的访问权限
  • 重置我的安全令牌

有没有人知道如何通过salesforce中的API或UI获取令牌或获取新的刷新令牌?

2 个答案:

答案 0 :(得分:4)

要撤消用户界面的访问权限,请点击Salesforce右上角菜单中的以下内容: 你的名字|设置|我的个人信息|个人信息,然后单击拒绝

更多信息: https://na12.salesforce.com/help/doc/en/remoteaccess_about.htm

您使用的是什么范围?如果指定范围(如“api”),则需要通过在范围中指定“刷新令牌”(空格分隔)来显式请求刷新令牌。有关范围的更多信息,请访问: https://na12.salesforce.com/help/doc/en/remoteaccess_oauth_scopes.htm

Unlike Google,无论用户是否刚刚批准该应用,Salesforce都会多次提供刷新令牌。

我一直在使用Google's OAuth playground来玩这个。您可以单击右上角的齿轮并指定Salesforce服务的值。 授权终点:https://login.salesforce.com/services/oauth2/authorize 令牌端点:https://login.salesforce.com/services/oauth2/token 客户端ID /机密:来自Salesforce的远程访问配置中的“消费者”密钥/机密信息

您需要在应用配置中使用“https://code.google.com/oauthplayground/”作为回调网址。

答案 1 :(得分:0)

这可以在您的帐户中完成:

My Settings | Select Personal | Advanced User Details | OAuth Connected Apps

Exact steps at salesforce can be found here