代码之家  ›  专栏  ›  技术社区  ›  Shasha

JWT令牌重新运行为空,即使令牌是在邮差中创建的

  •  1
  • Shasha  · 技术社区  · 8 年前

    找不到访问令牌

     api.php //where I generate my token and create_insert_new_delivery() is the function that checks the incoming parameter for adding a new delivery according to the API i am building
    
    public function generateToken(){ //WORKS PERFECTLY, BUT WHEN I TRY TO GET THE TOKEN
        try {
        $client_id_key = $this->validateParameter('client_id_key', $this->param['client_id_key'], STRING);
        //$client_secret_key = $this->validateParameter('client_secret_key', $this->param['client_secret_key'], STRING);
        //client_secret_key should be commented out it is not used for validation for security purposes, only id key
    
        $stmt = $this->dbConn->prepare("SELECT * FROM `api_clients_properties` WHERE client_id = :client_id_key");
        $stmt->bindParam(":client_id_key", $client_id_key);
        $stmt->execute();
        $user = $stmt->fetch(PDO::FETCH_ASSOC);
        if (!is_array($user)){
            $this->returnResponse(API_NAME_REQUIRED, "Invalid Client Id Key");
        }
    
        if ($user['property_status'] == "not verified"){
           $this->returnResponse(API_NAME_REQUIRED, "Property not verified, please contact admin, to verify it");   
        }
    
        $payload = [
           'iat' => time(),
           'iss' => 'localhost',
           'exp' => time() + (60),
           'userId' => $user['id']
        ];
    
        $token = JWT::encode($payload, SECRETE_KEY);
    
        $data = ['token' => $token];
        $this->returnResponse(SUCCESS_RESPONSE, $data);
    } catch (Exception $e){
        $this->throwError(JWT_PROCESSING_ERROR, $e->getMessage());
    }
    }
    
    
    public function create_insert_new_delivery(){
    $c_payment_type = $this->validateParameter('payment_type', $this->param['payment_type'], STRING, true);
    
    $c_date_of_delivery = $this->validateParameter('date_of_delivery', $this->param['date_of_delivery'], STRING, true);
    
    $c_country_from = $this->validateParameter('country_from', $this->param['country_from'], STRING, true);
    }
    
    try {
          echo $token = $this->getBearerToken(); //Trying to get this token out, but its empty what am i doing wrong.
    
    
    
      } catch (Exception $e){
          $this->throwError(ACCESS_TOKEN_ERRORS, $e->getMessage()); //THIS "ACCESS_TOKEN_ERRORS" gives undefined token 
      }
    
    }
    
    
    
     //constants.php the constant to serve errors
       /*Server Errors*/
    define('JWT_PROCESSING_ERROR',                 300);  
    define('AUTHORIZATION_HEADER_NOT_FOUND',       301);
    define('ACCESS_TOKEN_ERRORS',                 302);
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   Shasha    8 年前