2011-12-10 1 views
1

私はZendフレームワークを利用したWebサービスを作成しようとしています。 APIはRESTベースで、Zend_Rest_Controllerを基本クラスとして使用します。私は、ユーザーの管理とセッションを持っていることを望む、そしてそのために私は次のコードを使用しています: ログイン(POST)RestとZFセッション管理

// user id and password fetched first 

$users = new Application_Model_DbTable_UserInfo(); 
$auth = Zend_Auth::getInstance(); 
$authAdapter = new Zend_Auth_Adapter_DbTable($users->getAdapter(),'users'); 
$authAdapter->setIdentityColumn('userid') 
    ->setCredentialColumn('password'); 
$authAdapter->setIdentity($userid) 
    ->setCredential($pwd); 
$result = $auth->authenticate($authAdapter); 
if($result->isValid()){ 
    Zend_Session::rememberMe(604800); 
    $storage = new Zend_Auth_Storage_Session(); 
    $usa = $authAdapter->getResultRowObject(); 
      $auth->getStorage()->write($usa); 
    $authSession = new Zend_Session_Namespace('Zend_Auth'); 
    $authSession->setExpirationSeconds(60*60);    
} 

をして、例えばでサービスにアクセスするときいくつかのGETメソッドは、私は次のコードで有効なセッションがあることを確認したい:

$auth = Zend_Auth::getInstance();  
if(!$auth->hasIdentity()) 
{ 
    // error handling etc. 
} 

私はアイデンティティを取得することはありません、したがって、サービスは動作しません。

私はZF認証のガイダンスに厳密に従っていますが、RESTには追加の項目を考慮する必要がありますか?

答えて

0

私はあなたの質問に答えるつもりはありませんが、真のRESTインターフェイスを実装することを本当に計画しているなら(つまり、スケーリングを有効にすることを意味します)、セッションとZend_Authあなたが上に描いた方法で。

RESTインターフェースおよび認証についての何かが既に議論されている場合は、こちらをご覧ください:要するに Can you help me understand this? "Common REST Mistakes: Sessions are irrelevant"

を、RESTfulなであるために「、Q /上記スレッドから引用し、各HTTPリクエストが十分に運ぶ必要があります受信者がそれを処理してHTTPのステートレスな性質と完全に調和するための情報 "私はそれを分かっているような気がします。