2012-02-09 35 views
0

ログイン用のユーザー名とパスワードを取得し、セッションキーを生成するREST API(Restlerを使用)を構築しようとしています。セッションキーが生成されると、ユーザーはこのセッションキーを渡してAPI内の他のクラスにアクセスできます。 __isAuthenticatedを呼び出すクラスの名前を取得することは可能ですか?Restlerを使用して異なるクラスの異なる認証

マイ認証クラス:

<?php 
class Auth implements iAuthenticate 
{ 
    public static $sessionKey; 
    public static $currentUser; 
    public $tempsesskey; 

    function __isAuthenticated() 
    { 
     if (isset($_GET['useremail']) && isset($_GET['userpass'])) { 
      $user = $_GET['useremail']; 
      $pass = $_GET['userpass']; 
      $user = mysql_real_escape_string($user); 
      $pass = mysql_real_escape_string($pass); 
      mysql_query(
      "UPDATE `userdetail` SET lastlogin=NOW() 
      WHERE useremail='$user' AND userpass=md5('$pass')"); 
      if (mysql_affected_rows() > 0) { 
       $result = mysql_query(
       "SELECT sessionkey from usersession where TIMESTAMPDIFF(MINUTE,lastactivity,now()) < 20 and useremail='$user'"); 
       while ($row = mysql_fetch_assoc($result)) { 
        $tempsesskey = $row['sessionkey']; 
       } 
       if (strlen($tempsesskey) > 0) { 
        mysql_query(
        "UPDATE usersession set lastactivity=now() where sessionkey='$tempsesskey'"); 
       } else { 
        $tempsesskey = generateKey(52); 
        mysql_query(
        "UPDATE `usersession` set sessionkey='$tempsesskey',keyvalid='Y' where useremail='$user'"); 
       } 
       self::$currentUser = $user; 
       self::$sessionKey = $tempsesskey; 
       return TRUE; 
      } 
     } else 
      if (isset($_GET['sessionkey'])) { 
       $sesskey = $_GET['sessionkey']; 
       $sesskey = mysql_real_escape_string($sesskey); 
       $result = mysql_query(
       "SELECT sessionkey from usersession where sessionkey='$sesskey' and TIMESTAMPDIFF(MINUTE,lastactivity,now()) < 20"); 
       if (mysql_affected_rows() > 0) { 
        while ($row = mysql_fetch_assoc($result)) { 
         $tempsesskey = $row['sessionkey']; 
         self::$sessionKey = $tempsesskey; 
        } 
        return TRUE; 
       } 
      } 
    } 
} 

答えて

1

Authentication with ACL.に説明されているカスタムPHPのdocコメント/注釈を追加することにより、認証クラスのプロパティを設定する簡単な方法がありますが、あなたの目的のために同じ手法を使用することができます同様に

+0

ありがとうございます。私はこのオプションが私のために働くと思う。 – Ara

関連する問題