【问题标题】:Salesforce REST API logoutSalesforce REST API 注销
【发布时间】:2015-06-28 21:28:09
【问题描述】:

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

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

在上面的 url 中,它建议我们点击 salesforce revoke 端点,如下所述: https://help.salesforce.com/HTViewHelpDoc?id=remoteaccess_revoke_token.htm&language=en_US

但是,正如我之前提到的,我使用用户名、密码、安全令牌方法登录,而不是 oauth。 假设,我不能使用 oauth 方式登录,我需要点击什么 url/endpoint 来注销会话?

谢谢!

【问题讨论】:

    标签: python salesforce


    【解决方案1】:

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

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

    我们将访问端点的令牌实际上是我们的 session_id。因此,在 simple_salesforce 中,一旦我们创建了 sf 对象,如下所示

    sf = Salesforce(username='myemail@example.com', 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
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2014-12-22
      • 2020-03-19
      • 2012-03-04
      • 1970-01-01
      • 1970-01-01
      • 2016-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多