iOS应用:20分钟后服务器超时验证。这正常吗,我该如何处理?

乔丹·史密斯

我在做什么

我正在使用提供给我的一组私有API构建企业应用程序。不幸的是,在闲置20分钟之后,我从随后对服务器的调用中获得401未经授权的响应,直到我注销该应用程序并再次登录(或更具体地说,直到我再次使用用户名和密码调用登录API为止)。


我尝试过的

  • 每隔10分钟左右调用一次登录API。这似乎可行,但是很丑陋,而且似乎不那么可靠(仍然从beta测试人员那里获得有关401错误的报告)。

  • 对于我提出的每个Web请求,我都可以检查401,然后进行适当处理并重新生成相同的请求。它可以正常工作,但是很丑陋,有很多重复的代码(为每个请求处理程序复制粘贴...),而且一般来说都是不好的样式。

  • 使用NSURLSession的会话级质询处理程序委托方法。这会在类型为NSURLAuthenticationMethodServerTrust的初始登录API调用中接收到一个挑战,我将使用从Challenge.protectionSpace.serverTrust创建的凭据对此进行响应。这个挑战是成功的,应用程序运行良好。闲置20分钟后,下一次API调用将再次触发此委托方法。我以相同的方式响应,该方法仅被调用一次,没有Challenge.previousFailureCount或其他任何东西,因此一切似乎都很好……但是请求返回了401。

  • 使用NSURLSession的任务级别挑战处理程序委托方法。这比会话级委托更频繁地被调用,但是它产生相同的结果。最初很好,但是在闲置20分钟后,我以同样的方式对其进行响应,并且返回401且未显示任何警告,例如,前FailureCount大于0的被召回的挑战处理程序。

  • 从任务或会话级质询处理程序委托方法中调用登录API。这有几个问题:从会话级别的委托人,我无法得知是从登录API本身(在这种情况下,我们不希望重新调用登录API)还是从其他API调用质询(在这种情况下,我们希望如此)。也没有办法召回失败的原始NSURLRequest。从任务级别的委托人开始,它可以工作,因为我可以挂起任务,直到进行重新身份验证为止,并且仅在任务的请求不是针对登录API时才调用登录API。但是-这被称为太多-例如,在应用程序启动期间被调用了约20次。这非常丑陋且效率低下。


我想知道的

  • 这是正常的吗?服务器行为是否正常,我在应如何处理此方面是否缺少某些东西?或者-服务器是否异常,是否可以向客户端建议简单的修复方法?

  • 有没有一种干净的方法来处理iOS中的这种身份验证设置?

  • 在我的情况下,您会怎么做?

汤姆·哈灵顿

在我的情况下,您会怎么做?

修复该死的服务器,就是这样。或者找到可以修复它并让他们修复的人。您有各种各样的解决方法,但是它们都是围绕着可以一劳永逸地解决的问题而展开的。找出谁负责服务器,并让他们修复服务器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

约20分钟后服务器崩溃

来自分类Dev

15-20分钟的空闲时间后,服务器上的RPCS消失

来自分类Dev

Android:如何每3分钟和5分钟将数据从服务器同步到我的应用程序?

来自分类Dev

运行60分钟后如何关闭Linux服务器?

来自分类Dev

防止iOS在3分钟后杀死我的应用

来自分类Dev

生产几分钟(5分钟)后,Rails 5服务器做出响应

来自分类Dev

在虚拟服务器上的启动时间超过20分钟

来自分类Dev

mysql服务器宕机该如何处理?

来自分类Dev

简单的服务器发送事件:30分钟后时钟停止

来自分类Dev

5分钟后Apache服务器var / www变得不可用

来自分类Dev

接收启动后20分钟如何执行服务?

来自分类Dev

我如何显示/显示从20分钟倒数到0的计数器?

来自分类Dev

如何检查服务器是否已启动超过15分钟?

来自分类Dev

如何每5分钟通知服务器一次用户的位置?

来自分类Dev

我想每15分钟将位置更新发布到服务器,即使应用未在前台运行

来自分类Dev

我的云服务器附带没有密码的PermitRootLogin,这正常吗?

来自分类Dev

默认期限后(20分钟),MVC 5会话超时

来自分类Dev

使用JMeter找出服务器在一分钟内是否可以处理100个用户

来自分类Dev

闲置5分钟后,Netty WebSocket客户端无法从服务器读取新帧

来自分类Dev

每隔30分钟在远程Ubuntu服务器上运行我的python3程序

来自分类Dev

Nginx上的Flask应用在1分钟后超时

来自分类Dev

我的应用程序在android设备中启动后15分钟后如何停止或禁用GPS?

来自分类Dev

如何设置100个并发用户的Jmeter环境在服务器上运行30分钟?

来自分类Dev

如何在Web服务器运行时每2分钟调用一次函数?

来自分类Dev

十分钟后svnsync超时

来自分类Dev

gcloud Preview应用部署过程大约需要8分钟,这是正常的吗?

来自分类Dev

我如何增加会话超时(默认为30分钟)

来自分类Dev

使用管道进行多处理-应用程序始终在约5分钟后停止

来自分类Dev

µTorrent:如何更改跟踪器的30分钟超时

Related 相关文章

  1. 1

    约20分钟后服务器崩溃

  2. 2

    15-20分钟的空闲时间后,服务器上的RPCS消失

  3. 3

    Android:如何每3分钟和5分钟将数据从服务器同步到我的应用程序?

  4. 4

    运行60分钟后如何关闭Linux服务器?

  5. 5

    防止iOS在3分钟后杀死我的应用

  6. 6

    生产几分钟(5分钟)后,Rails 5服务器做出响应

  7. 7

    在虚拟服务器上的启动时间超过20分钟

  8. 8

    mysql服务器宕机该如何处理?

  9. 9

    简单的服务器发送事件:30分钟后时钟停止

  10. 10

    5分钟后Apache服务器var / www变得不可用

  11. 11

    接收启动后20分钟如何执行服务?

  12. 12

    我如何显示/显示从20分钟倒数到0的计数器?

  13. 13

    如何检查服务器是否已启动超过15分钟?

  14. 14

    如何每5分钟通知服务器一次用户的位置?

  15. 15

    我想每15分钟将位置更新发布到服务器,即使应用未在前台运行

  16. 16

    我的云服务器附带没有密码的PermitRootLogin,这正常吗?

  17. 17

    默认期限后(20分钟),MVC 5会话超时

  18. 18

    使用JMeter找出服务器在一分钟内是否可以处理100个用户

  19. 19

    闲置5分钟后,Netty WebSocket客户端无法从服务器读取新帧

  20. 20

    每隔30分钟在远程Ubuntu服务器上运行我的python3程序

  21. 21

    Nginx上的Flask应用在1分钟后超时

  22. 22

    我的应用程序在android设备中启动后15分钟后如何停止或禁用GPS?

  23. 23

    如何设置100个并发用户的Jmeter环境在服务器上运行30分钟?

  24. 24

    如何在Web服务器运行时每2分钟调用一次函数?

  25. 25

    十分钟后svnsync超时

  26. 26

    gcloud Preview应用部署过程大约需要8分钟,这是正常的吗?

  27. 27

    我如何增加会话超时(默认为30分钟)

  28. 28

    使用管道进行多处理-应用程序始终在约5分钟后停止

  29. 29

    µTorrent:如何更改跟踪器的30分钟超时

热门标签

归档