我们正在构建一个iPhone应用程序,它将使用CakePHP 2.x.x
访问我们的后端服务器客户端是使用iOS SDK的iPhone App 服务器正在使用Cakephp2.0。
我们可以为控制器/操作(用户/登录)创建http POST。此操作当前正在使用标准数据库查询登录并匹配用户/密码组合。这不是真正的AuthComponent。 我们想要的是启用Auth组件,以便我们可以验证每个请求的会话。我们如何将Auth用于此类移动客户端应用程序。
我已阅读REST概念等,但仍不清楚我们如何将Auth纳入此移动应用程序通信的范围。
任何参考都会有所帮助。我是移动领域的新手,但我确实有很好的知识网站开发(基于浏览器)。对于移动设备,我们使用原生SDK用于移动平台。
-BC
答案 0 :(得分:1)
首先在完全(桌面)基于Web的解决方案或移动解决方案中使用AuthComponent
没有区别 - 它只是正常工作。在您的情况下,您将分离两个应用程序层:
通常在Web开发中有两个重要概念:
Authentication和Authorization。 身份验证确保用户是他所构成的人 - 即在他们提供正确的密码后将其登录。 授权确保登录用户有权访问给定资源。第二件事可以用不同的方法来实现,我不会停下来。
开箱即用Cake提供三种不同的身份验证方法:
我很清楚地解释了我提供的链接中的内容。现在,在您的情况下,您可能需要考虑using DigestAuthenticate并且肯定要通过SSL消化摘要:)。 当然,您也可以使用FormAuthentication。但是,还要考虑在登录用户时发出令牌,然后使用这些令牌进行API调用。这些应该具有相对较低的寿命。这个寿命取决于你,但通常是10-15分钟。 当进行呼叫并且令牌已过期时,只需为该用户创建一个新的。该托管系统可以在某种程度上与认证系统分离 - 即,用户可能仍然具有会话但是他的当前令牌可能已经过期 - 因此发布新的。确保针对试图访问给定应用程序区域中的信息的用户验证这些令牌 - 因此验证令牌仍然有效并且实际上是由同一用户发布和使用的。
希望这有点帮助。我认为你选择REST是一个很好的选择,因为它提供了一个很好的基于动词的API结构。