removed eronius comment
[ga4php.git] / lib / ga4php.php
index 6c4e156..22a7b2c 100644 (file)
@@ -37,6 +37,20 @@ abstract class GoogleAuthenticator {
                return $data;
        }
        
+       // custom data field manipulation bits
+       function setCustomData($username, $data) {
+               $data = $this->internalGetData($username);
+               $data["user"] = $key;
+               $this->internalPutData($username, $data);
+       }
+       
+       function getCustomData($username) {
+               $data = $this->internalGetData($username);
+               $custom = $data["user"];
+               return $custom;
+               
+       }
+       
        // an internal funciton to get data from the overloaded functions
        // and turn them into php arrays.
        function internalGetData($username) {
@@ -125,6 +139,8 @@ abstract class GoogleAuthenticator {
                $this->internalPutData($username, "");          
        }
        
+
+       
        // user has input their user name and some code, authenticate
        // it
        function authenticateUser($username, $code) {
@@ -154,7 +170,7 @@ abstract class GoogleAuthenticator {
                                $en = $tlid+$this->hotpSkew;
                                for($i=$st; $i<$en; $i++) {
                                        $stest = $this->oath_hotp($tkey, $i);
-                                       error_log("testing code: $code, $stest, $tkey, $tid");
+                                       //error_log("testing code: $code, $stest, $tkey, $tid");
                                        if($code == $stest) {
                                                $tokendata["tokencounter"] = $i;
                                                $this->internalPutData($username, $tokendata);
@@ -199,7 +215,7 @@ abstract class GoogleAuthenticator {
                // for keys
                
                //              $this->dbConnector->query('CREATE TABLE "tokens" ("token_id" INTEGER PRIMARY KEY AUTOINCREMENT,"token_key" TEXT NOT NULL, "token_type" TEXT NOT NULL, "token_lastid" INTEGER NOT NULL)');
-               $tokendata = internalGetData($username);
+               $tokendata = $this->internalGetData($username);
                
                // TODO: check return value
                $ttype = $tokendata["tokentype"];
@@ -222,7 +238,7 @@ abstract class GoogleAuthenticator {
                                                $stest2 = $this->oath_hotp($tkey, $i+1);
                                                if($code2 == $stest2) {
                                                        $tokendata["tokencounter"] = $i+1;
-                                                       internalPutData($username, $tokendata);                                         
+                                                       $this->internalPutData($username, $tokendata);                                          
                                                        return true;
                                                }
                                        }
@@ -250,7 +266,10 @@ abstract class GoogleAuthenticator {
                $data = $this->internalGetData($user);
                $toktype = $data["tokentype"];
                $key = $this->helperhex2b32($data["tokenkey"]);
-               $counter = $data["tokencounter"];
+
+               // token counter should be one more then current token value, otherwise
+               // it gets confused
+               $counter = $data["tokencounter"]+1;
                $toktype = strtolower($toktype);
                if($toktype == "hotp") {
                        $url = "otpauth://$toktype/$user?secret=$key&counter=$counter";