首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS应用程序登录流程

iOS应用程序登录流程
EN

Stack Overflow用户
提问于 2012-08-06 23:53:19
回答 3查看 705关注 0票数 0

我已经开发了我的第一个iOS应用程序,允许用户登录到我们网站上的帐户,并查看/添加/编辑/删除数据库中的记录。

我已经写了一个基本的应用程序,它像这样处理这个过程;

应用程序开始运行。

每个视图控制器从viewWillAppear方法中调用一个checkAuth方法。此方法获取应用程序中存储的用户名和密码,将它们作为dataWithContentsOfURL请求中的GET变量发送到服务器。然后检查生成的JSON,如果响应失败,则显示一个警告对话框,并将用户带到另一个选项卡(我使用的是选项卡栏控制器),提示他们输入登录详细信息。

使用此方法时,每次不同的视图控制器接管(我的情节提要文件中的每个场景)时,都会调用auth方法。这看起来有点浪费。有没有更好的方法来确保用户的登录凭证是正确的?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-07 00:05:12

将用户名和密码存储在应用程序中是一种糟糕的做法。如果修改后端在您的控制范围之内,那么最好是向后端进行身份验证,并得到一个只对该设备有效的令牌。

在这里,您可以将令牌与每个请求一起传递,如果后端确定您已经注销,那么它应该返回一条错误消息。这样,身份验证将在ad-hoc基础上进行检查,并且仅在发送请求时进行。

我认为没有理由在每次加载视图时都这样做,除非有业务需求。

票数 3
EN

Stack Overflow用户

发布于 2012-08-06 23:57:39

为什么不使用“通信管理”单例来实现这一点呢?它将处理与服务器进行身份验证和通信的所有任务,您的每个控制器都与它对话,而不直接与服务器交互。

票数 3
EN

Stack Overflow用户

发布于 2012-08-07 00:13:00

您可能会有一个非活动会话超时:通过NSTimer。设置成功登录时的会话超时标记(例如,登录时间加10分钟)。当用户使用应用程序时,保持将存储的会话超时时间更新为当前时间加10分钟(使计时器无效并创建一个新计时器)。当应用程序退出或进入后台时,使计时器无效。让计时器在计时器超时时调用注销方法。

哦,不要在应用程序中存储用户名/密码。使用密钥链将它们加密存储(如果需要的话,将它们保存在本地)。我建议只将用户名存储在本地。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11831712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档