【问题标题】:Does the Salesforce REST API callback url need to be HTTPS?Salesforce REST API 回调 URL 是否需要是 HTTPS?
【发布时间】:2011-11-14 13:36:56
【问题描述】:

我一直在尝试连接到 Salesforce REST API,但运气不佳。 Salesforce REST API Quick Start Guide 声明需要 HTTPS 回调 url,但在示例中他们使用 https://localhost:8443/RestTest/oauth/_callback 作为回调 url。

我尝试使用 php Salesforce REST API example 在我的测试服务器 (HTTP) 上进行连接,但 Salesforce 似乎已经适应并进入了重定向循环。

如果我没有 SSL 证书,是否可以连接到 Salesforce REST API?如果可以,我应该怎么做?作为记录,我的应用程序是用 PHP 编写的,而不是像大多数官方示例那样是 Java。

【问题讨论】:

  • 你想通过举这个例子来说明什么?示例是 HTTPS。 “但是”什么?
  • 但它位于“localhost”的开发环境中。如果可以在本地主机上使用 https,我很想知道如何。
  • 是什么让localhost 如此特别? google.com.au/…google.com.au/… - 只需获得证书即可。
  • 对于我的本地机器 (OS X),似乎可以进行自我认证:hints.macworld.com/article.php?story=20041129143420344。去试试吧。
  • 您真的需要 OAuth 身份验证与会话 ID 吗?您的回调 URL 是否与(在 Salesforce 中)“设置 | 开发 | 远程访问”下设置的相同

标签: php rest https salesforce


【解决方案1】:

对于 localhost,它接受 http,您应该使用 https 来代替 localhost。 但是请求中的重定向 URI 和连接的应用程序中的回调 url 应该匹配。

您可以在连接的应用程序和请求中使用http://localhost:8080/<any_page_in_ur_project>

【讨论】:

    【解决方案2】:

    我从未使用过 Salesforce REST API,但我已经阅读了您链接到的页面。

    OAuth 回调 URL 必须是 HTTPS。您似乎已经在文档中自己发现了这一点:

    一定要安全:http://不行,只有https://

    ...还有例子:

    @WebInitParam(name = "redirectUri", value = 
        "https://localhost:8443/RestTest/oauth/_callback")
    

    至于你的其他问题:

    如果我没有 SSL 证书,是否可以连接到 Salesforce REST API?如果可以,我应该怎么做?

    大概是通过第二种方法,正如您链接到的页面上的第一句话所暗示的那样:

    您可以使用 OAuth 2.0 或通过传递会话 ID 来设置授权。

    ...

    会话 ID 授权

    如果您不处理其他人的密码,则可以使用会话 ID 而不是 OAuth 2.0 访问令牌:

    1. 获取会话 ID,例如,SOAP Web 服务 API login() 调用返回会话 ID。您可能还拥有会话 ID,例如作为 Apex 当前上下文的一部分。

    2. 向资源发送请求时使用会话 ID。用 ID 替换令牌值。

    因此,如果您不处理其他人的密码(无论这意味着什么),您可以使用 login() 获取会话 ID 并从那里与网络服务进行通信。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    • 2020-10-06
    • 2015-10-20
    • 2017-06-07
    • 1970-01-01
    相关资源
    最近更新 更多