【问题标题】:Salesforce Native IOS SDK can't refresh access tokenSalesforce Native IOS SDK 无法刷新访问令牌
【发布时间】:2015-02-05 20:51:10
【问题描述】:

我目前正在使用 Salesforce.com IOS SDK 版本 3.0 来构建连接到 salesforce 的本机应用程序。这个应用程序将用于外部用户,因此它指向社区。

我首先创建了一个原生 IOS SDK 应用程序,然后让该应用程序正常工作并与销售人员交谈。

然后我创建了一个新社区,创建了一个社区用户,为他们提供了适当的权限并完成了社区的设置。

接下来我进入了 Xcode 项目,在应用程序 plist 的支持文件下。然后我编辑了 SFDCOAuthLoginHost 以设置为社区 URL。

完成后,我重新启动了应用程序,并能够通过本机 SDK 登录到社区,一切都会很好,直到应用程序达到其会话超时。此时我收到这些错误。

ERROR|SFNetworkOperation|callDelegateDidFailWithError Session expired or invalid
ERROR|SFNetworkOperation|Session timeout encountered. Requeue  0.000000or retry later
ERROR|SFNetworkEngine|Ignore session timeout error callback as host URL changed, request URL is https://dev-patientsupport-dev.cs21.force.com/dev/services/apexrest/patientNotifications, login host is [cs21.salesforce.com]

当然,因为它无法获得新会话,所以在此之后所有网络标注都会失败。

我到处搜索,找不到解决这个问题的方法。我的猜测是,因为请求是向社区 URL 发出的,但是刷新的会话是从 cs21.salesforce.com 发送的,所以它被忽略了。再次感谢大家的时间。

【问题讨论】:

    标签: ios salesforce salesforce-ios-sdk


    【解决方案1】:

    已在 GitHub、npm (forceios) 和 Cocoapods 上作为 Mobile SDK 3.1.1 补丁的一部分提交了针对此错误的修复。请参阅https://plus.google.com/105428096535342044035/posts/AkoVwL5Kdt3 了解更多详情。

    【讨论】:

      【解决方案2】:

      看起来这可能是由于在使用社区时将其 instanceURL 设置为错误目标的刷新令牌引起的。这可能是 SDK 中的一个错误,因为它在 Web 上运行良好。尝试将凭证的 instanceURL 更改为与社区的 URL 相同,看看是否有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-11
        • 1970-01-01
        • 1970-01-01
        • 2020-02-06
        • 1970-01-01
        • 2017-08-11
        相关资源
        最近更新 更多