我正在构建一个将数据从 Android 设备发布到 cakephp 后端(Web 服务)的应用程序。我最终制作了自己的身份验证对象并像这样发送访问令牌:
class MyAuthenticate extends BaseAuthenticate {
public function authenticate(CakeRequest $request, CakeResponse $response) {
$userCont = $this->_Collection->getController();
$userCont->loadModel($this->_Collection->getController()->modelClass);
$response = array();
if (isset($request['data']['access_token']) AND $userCont->User->find('all', array('recursive' => 0, 'conditions' => array('User.access_token' => $request['data']['access_token'])))) {
//debug( $userCont->User->find('all',array('recursive'=>0,'conditions'=>array('access_token'=>$request['data']['access_token']))));
//die;
return $userCont->User->find('all', array('recursive' => 0, 'conditions' => array('access_token' => $request['data']['access_token'])));
}
else
return false;//print_r('NOT FOUND');
}
然后将此添加到身份验证数组
public function beforeFilter() {
$this->Auth->authenticate = array(
AuthComponent::ALL => array('userModel' => 'User'),
'Form',
'My'
);
我通过向登录页面发布带有访问令牌的请求来测试它,这将返回主页(重定向 url)。
现在我想将数据发布到其他控制器操作,例如“添加”帖子。如果我使用访问令牌和请求参数将请求发送到例如 mysite/posts/add,它不会发布并返回 ACL 权限错误消息。
我想我需要在登录或某些东西中进行一些重定向或手动重定向?到目前为止,我在构建此身份验证对象时的逻辑是否正确?
非常感谢。