Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Problema con JWT dopo autenticazione

    ciao!

    in un'applicazione php + angular, sto usando php-jwt per l'autenticazione.

    dopo aver eseguito il login, invio una richiesta all'api per visualizzare dei dati.
    invio anche il token ovviamente.
    solo che subito dopo il login, effettuato correttamente, il server mi risponde così:
    codice:
    Object { res: "ko", message: "Accesso negato", error: "Cannot handle token prior to 2021-10-01T15:11:01+0200" }
    poi se rinfresco la pagina un paio di volte, vedo tutto senza problemi.

    questo lo script di login:
    codice:
    .............
    
    if (!$resLogin) {
        echo json_encode(
            array(
                "res" => "ko",
                "message" => "Credenziali errate"
            ));
    } else {
        $secretKey = $GLOBAL_SECRET_KEY;
        $issuerClaim = "sito.it"; // SERVER NAME
        $audienceClaim = "sito_api"; // NOME API
        $issuedatClaim = time();
        $notbeforeClaim = $issuedatClaim + 10;
        $expireClaim = $issuedatClaim + 60000; // SCADENZA IN SECONDI
        $token = array(
            "iss" => $issuerClaim,
            "aud" => $audienceClaim,
            "iat" => $issuedatClaim,
            "nbf" => $notbeforeClaim,
            "exp" => $expireClaim,
            "data" => array(
                "id" => $resLogin[0]["id"],
                "username" => $user,
            ));
    
        $jwt = JWT::encode($token, $secretKey);
        echo json_encode(
            array(
                "res" => "ok",
                "message" => "Login eseguito correttamente",
                "jwt" => $jwt,
                "username" => $user,
                "userid" => $resLogin[0]["id"],
                "expireAt" => $expireClaim
            ));
    }
    qualche idea??
    magari sto sbagliando la configurazione di JWT??
    Ultima modifica di fermat; 01-10-2021 a 15:22

  2. #2
    $notbeforeClaim = $issuedatClaim + 10;

    In pratica gli dici che la validità è NON PRIMA di 10 secondi da quando viene fatta la richiesta (dallo script)...

  3. #3
    ho rimosso quel + 10.

    avevo comunque trovato un'altra soluzione:
    codice:
    JWT::$leeway = 60;
    $decoded = JWT::decode($jwt, $secretKey, array('HS256'));
    però dovrei metterla in tutti files.
    quindi preferisco seguire il tuo suggerimento.

    grazie!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.