2015-04-21 101 views
1

是否有Salesforce端点用于注销会话(不涉及oauth?)。Salesforce REST API注销

例如,我有一个使用用户名,密码,安全令牌方法(我正在使用simple_salesforce)通过REST API登录的python脚本。simple_salesforce不提供内置的注销方式。相反,根据开发商,退出应该是我们的责任: https://github.com/heroku/simple-salesforce/issues/35

在上面的网址,就建议我们打的销售人员撤销端点如下所述: https://help.salesforce.com/HTViewHelpDoc?id=remoteaccess_revoke_token.htm&language=en_US

然而,正如我之前提到的,我使用用户名,密码,安全令牌方法登录,而不是oauth。 假设我无法使用oauth方式登录,需要点击哪个网址/终端才能注销会话?

谢谢!

回答

1

回答我自己的问题。也许这可能对其他人有帮助。

当使用用户名,密码,安全标记方法而不是oauth登录时,仍然使用oauth撤销端点进行注销。如Salesforce文档(https://help.salesforce.com/apex/HTViewHelpDoc?id=remoteaccess_revoke_token.htm&language=en)所示,撤销终结点具有以下网址:https://login.salesforce.com/services/oauth2/revoke?token=currenttokenID

我们打到端点的令牌实际上是我们的session_id。所以,在simple_salesforce,一旦我们已经创建了SF对象如下

sf = Salesforce(username='[email protected]', password='password', security_token='token') 

我们通过sf.session_id获取会话ID。

现在打端点,我们可以使用要求(这已经是那里的SF对象)

payload = { "token": sf.session_id } 
url = 'https://test.salesforce.com/services/oauth2/revoke' 
r = sf.request.get(url, params=payload) 
if r.status_code == 200: 
    #successfully logged out, good to go! 
else: 
    #uh-oh, something went wrong. check it out 

希望这有助于!