我正在用cakephp 2.4.7进行开发,我很困惑,我不知道实现我需要的最佳方式是什么。cakephp rest api和身份验证
我的蛋糕项目与社交网络类似,我已经编写了Web部分的大部分。现在我想开始开发原生移动应用程序(iOS,Android等)的API。
在我的项目中,我使用标准form
authentication
作为正常的浏览器方式。
我怎样才能同时使用basic
和form
authentication
?表单身份验证用于浏览器使用和本地移动应用程序的基本身份验证。
我AppController的样子:
public $components = array(
'...',
'Auth' => array(
'loginRedirect' => array(
'controller' => 'users',
'action' => 'index'
),
'logoutRedirect' => array(
'controller' => 'users',
'action' => 'login'
),
'authError' => 'You must be loggedin to view this page.',
'loginError' => 'Invalid user credentials.',
'authorize' => array('Controller'),
'authenticate' => array(
'Form' => array(
'userModel' => 'User',
)
),
'authorize' => array(
'Actions' => array('actionPath' => 'controllers')
)
)
);
我知道文档的这一部分:
利用多个处理程序允许您以支持在登录用户的不同的方式当,验证登录用户处理程序按照它们声明的顺序进行检查
但是login
操作怎么样?
有没有更好的解决方案?例如使用令牌进行身份验证。
我搜索了很多关于API versioning
和prefix routing
。我发现的唯一的事情是,蛋糕2.x不支持前缀路由休息。
我的目标是具有以下结构:
/users/view/2
的web浏览器/api/1.0/users/view/2.json
的移动应用程序。
在UsersController:
public function view($id = null) {
// Webbrowser
}
public function api_1_0_view($id = null) {
// mobile app version 1.0
}
public function api_2_0_view($id = null) {
// mobile app version 2.0
}
你能不能给我一个想法,我怎么能解决问题呢?