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 パーミッション エラー メッセージが返されます。
ログインなどでリダイレクトを作成するか、手動でリダイレクトする必要があると思いますか?この認証オブジェクトを構築する際に、私のロジックは今まで正しいですか?
どうもありがとう。