/**
  * @task token
  */
 public function validateAuthorizationCode(PhabricatorOAuthServerAuthorizationCode $test_code, PhabricatorOAuthServerAuthorizationCode $valid_code)
 {
     // check that all the meta data matches
     if ($test_code->getClientPHID() != $valid_code->getClientPHID()) {
         return false;
     }
     if ($test_code->getClientSecret() != $valid_code->getClientSecret()) {
         return false;
     }
     // check that the authorization code hasn't timed out
     $created_time = $test_code->getDateCreated();
     $must_be_used_by = $created_time + self::AUTHORIZATION_CODE_TIMEOUT;
     return time() < $must_be_used_by;
 }