Salesforce Native IOS SDK 无法刷新访问令牌



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

我最初是通过创建一个Native IOS SDK应用程序开始工作的,并与salesforce进行了交谈。

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

接下来,我进入了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发送的,所以它被忽略了。再次感谢大家的光临。

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

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

最新更新