Ich benutze Firebase/JWT mit PHP. Ich versuche, das Token in "decodierten" php-Datei zu lesen, aber es zeigt, Signatur-Verifizierung fehlgeschlagen, nicht sicher, warum das passiert. Dies ist, wie ich das TokenJWT "Signaturprüfung fehlgeschlagen" mit PHP
bin kodiert<?php
use \Firebase\JWT\JWT;
require 'vendor/autoload.php';
require('config/Database.php');
$db = new Database;
$key = "helloworld";
//$jwt = JWT::encode($token, $key, 'HS512');
$post = file_get_contents("php://input");
$postdata = json_decode($post);
if($postdata){
$email = $postdata->email;
$password = $postdata->password;
$query = "SELECT * FROM users WHERE email = :email";
$db->query($query);
$db->bind(":email", $email);
$rows = $db->resultset();
if(password_verify($password, $rows[0]["hash"])){
$rows[0]["Success"] = "Success";
$token = array(
"rows" => $rows
);
$jwt = JWT::encode($token, $key, 'HS256');
header("auth: " . $jwt);
echo json_encode($jwt, 128);
}else{
echo "Failed";
}
}
?>
Dann bin ich in dieser Datei die Token-Decodierung
<?php
use \Firebase\JWT\JWT;
require 'vendor/autoload.php';
require('config/Database.php');
$db = new Database;
$key = "helloworld";
//$jwt = JWT::encode($token, $key, 'HS512');
$post = file_get_contents("php://input");
$postdata = json_decode($post);
if($postdata){
$userData = $postdata->userdata;
// check if token is same stored in the database then decode
$jwt = JWT::decode($userData, $key, array('HS256'));
echo $jwt;
}
?>
Es schlägt fehl, eine „Signaturprüfung nicht bestanden“ Fehler zurückgegeben. Jede Hilfe wird geschätzt. Vielen Dank.
Es ist viel besser, den Code als Text und nicht als Bild zu geben –
Was ist '$ postdata-> userdata' und warum dekodieren Sie es? Und warum "json_encode" deine "jwt"? – zerkms
@zerkms $ posdata-> userdata holt nur die Token und Benutzerinformationen vom Frontend und ich entziffere sie, um die Informationen des Benutzers zu erhalten. Json_encode ist jetzt nicht notwendig, aber bevor ich mehr Daten gesendet habe, dann nur jwt zu meinem eckigen und es war einfach im JSON-Format zu lesen. Hoffentlich beantwortet dies Ihre Fragen. –