AuthComponent for mobile(iphone)app开发

时间:2013-06-07 23:08:25

标签: iphone cakephp restful-authentication

我们正在构建一个iPhone应用程序,它将使用CakePHP 2.x.x

访问我们的后端服务器

客户端是使用iOS SDK的iPhone App 服务器正在使用Cakephp2.0。

我们可以为控制器/操作(用户/登录)创建http POST。此操作当前正在使用标准数据库查询登录并匹配用户/密码组合。这不是真正的AuthComponent。 我们想要的是启用Auth组件,以便我们可以验证每个请求的会话。我们如何将Auth用于此类移动客户端应用程序。

我已阅读REST概念等,但仍不清楚我们如何将Auth纳入此移动应用程序通信的范围。

任何参考都会有所帮助。我是移动领域的新手,但我确实有很好的知识网站开发(基于浏览器)。对于移动设备,我们使用原生SDK用于移动平台。

-BC

1 个答案:

答案 0 :(得分:1)

首先在完全(桌面)基于Web的解决方案或移动解决方案中使用AuthComponent没有区别 - 它只是正常工作。在您的情况下,您将分离两个应用程序层:

  1. 您的服务器处理身份验证,数据检索,数据自定义和数据传输。
  2. 您的客户处理数据表示
  3. 通常在Web开发中有两个重要概念:

    AuthenticationAuthorization身份验证确保用户是他所构成的人 - 即在他们提供正确的密码后将其登录。 授权确保登录用户有权访问给定资源。第二件事可以用不同的方法来实现,我不会停下来。

    开箱即用Cake提供三种不同的身份验证方法:

    • FormAuthenticate
    • BasicAuthenticate
    • DigestAuthenticate

    我很清楚地解释了我提供的链接中的内容。现在,在您的情况下,您可能需要考虑using DigestAuthenticate并且肯定要通过SSL消化摘要:)。 当然,您也可以使用FormAuthentication。但是,还要考虑在登录用户时发出令牌,然后使用这些令牌进行API调用。这些应该具有相对较低的寿命。这个寿命取决于你,但通常是10-15分钟。 当进行呼叫并且令牌已过期时,只需为该用户创建一个新的。该托管系统可以在某种程度上与认证系统分离 - 即,用户可能仍然具有会话但是他的当前令牌可能已经过期 - 因此发布新的。确保针对试图访问给定应用程序区域中的信息的用户验证这些令牌 - 因此验证令牌仍然有效并且实际上是由同一用户发布和使用的。

    希望这有点帮助。我认为你选择REST是一个很好的选择,因为它提供了一个很好的基于动词的API结构。