2012-05-16 72 views
3

我正在我的沙箱環境中工作,試圖找出Chatter API調用 - 我在測試期間保存了刷新令牌,但是稍後它會丟失。如何刷新或撤銷OAuth2.0訪問/ refresh_token,當沒有刷新令牌可用時?

現在,當我試着打我收到以下錯誤的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=*#()@*#[email protected] 
    --proxy 127.0.0.1:3128 --insecure 
    https://test.salesforce.com/services/oauth2/token 

事情我已經嘗試:

  • 重置了密碼,
  • 刪除遠程訪問,並創建一個新的新的client_id /祕密
  • 重置我的安全令牌

有誰知道如何通過Salesforce中的API或UI獲取令牌或獲取新的令牌刷新令牌?

回答

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 /'作爲你的應用配置中的回調URL。

+1

可惜就是沒有解決我的問題,我知道我可以很輕鬆地使用OAuth API的其他方法;然而,我需要能夠使用這一些腳本的目的 - 這需要我通過用戶名/密碼。即使從我的用戶記錄中清除了我的訪問權限,我仍然收到上述錯誤。我將不得不繼續鑽研這個。感謝您提供的內容! –

+0

我打算把這個標記爲答案,因爲你確實回答了我關於如何撤銷訪問的問題。雖然我也認爲我的oauth問題的答案在於你所鏈接的地方。我只需要深入挖掘並閱讀更多內容。感謝您的幫助。 –

+2

Thx。 FWIW - 如果salesforce爲您提供無限期更新令牌(通過基於Web的流程或通過您演示的憑據聲明),我通常會存儲刷新令牌本身而不是用戶名/密碼。更安全的方式:) –