iPhone开发 - 如何通过远程服务验证用户?

时间:2011-11-14 16:35:26

标签: iphone objective-c authentication

我正在同时开发iPhone应用程序和网站。我计划为网站制作API,以便应用程序可以发送URL请求来完成工作。例如,他们向www.example.com/journal/add/1发送请求,并将其ID为1的项目添加到其日记中。

我不知道的是,如何通过iPhone应用程序对它们进行身份验证?我希望他们只登录一次并保存他们的“会话”。我应该只是将用户名/密码存储在plist中,然后在每次发出请求时对它们进行身份验证(因此我必须在每个请求中发送用户名和密码哈希值,例如www.example.com/journal/add/1/user/hash?看起来很糟糕。

2 个答案:

答案 0 :(得分:0)

你可以尝试oauth,或者实现一个简单的密钥系统,登录的用户可以获得一个密钥来进行后续请求,无论你是否可以参考facebook,twitter,youtube apis,你都可以看到他们是如何做到的,从那里得到一些想法(它们都非常相似)虽然他们专注于让外部用户拨打电话,但你仍然可以做类似的事情......

答案 1 :(得分:0)

而不是保持他们的登录并通过你应该保持sessionid(使用时间,登录和md5校验和)

首先,使用您的php脚本进行正常授权(您需要使用数据库),如果成功,则将sessionid返回给iphone客户端。 iphone客户端将其存储在本地。然后下次用户启动应用程序时,检查是否存在sessionid:如果是,则将其发送到服务器进行身份验证。服务器检查sessionid是否在数据库中 - 如果是,则将成功返回给客户端并更新数据库中的会话ID(请记住,sessionid可以加盖时间戳,因此如果长时间不活动,用户将不得不重新登录)

听起来很复杂,但并不是那么糟糕;)