Create Login using JWT(JSON Web Token) Token in PHP
<?php
require "vendor/autoload.php";
use Firebase\JWT\JWT;
use Firebase\JWT\Key;
$error = "";
$host = "localhost";
$username = "root";
$password = "";
$database = "test";
if (isset($_POST["login"])) {
$connect = new PDO("mysql:host=$host; dbname=$database", $username, $password);
if (empty($_POST["student_name"])) {
$error = "Please Enter Name Details";
} else if (empty($_POST["age"])) {
$error = "Please Enter Age Details";
} else {
$query = "SELECT * FROM students WHERE student_name = :student_name";
$payload = [
"student_name" => $_POST["student_name"]
];
try {
$statement = $connect->prepare($query);
$statement->execute($payload);
$data = $statement->fetch(PDO::FETCH_ASSOC);
} catch (Exception $e) {
$error = $e->getMessage();
echo $error;
}
if ($data) {
if ($data["age"] == $_POST["age"]) {
$example_key = "Example_key";
//$key = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJGaXJzdE9jY3VycmVuY2UiOjEzNDE0MTIwODcsIk5vZGUiOiJsb2NhbGhvc3QiLCJBbGVydEtleSI6IkpVbml0RXZlbnRJbnN0YW5jZSIsIkFnZW50IjoiY3JlYXRlRXZlbnROZXcoKSIsIlN1bW1hcnkiOiJUaGlzIGlzIGEgdGVzdCBldmVudCBnZW5lcmF0ZWQgYnkgdGhlIEpVbml0IFJFU1QgRXZlbnQgVGVzdHMuKDApIiwiTGFzdE9jY3VycmVuY2UiOjEzNDE0MTIwODcsIkFja25vd2xlZGdlZCI6MCwiSWRlbnRpZmllciI6IkpVbml0RXZlbnRUZXN0SW5zdGFuY2UjIyMjMCIsIk1hbmFnZXIiOiJjb20uaWJtLm5ldGNvb2wub21uaWJ1cy53cy5qdW5pdC5yZXN0LnNjaGVtYS51dGlscy5UYWJsZVJvd0V2ZW50IiwiT3duZXJHSUQiOjAsIkxvY2F0aW9uIjoiTk9UIFVQREFURUQiLCJUeXBlIjoxLCJTZXZlcml0eSI6NCwiT3duZXJVSUQiOjAsImlhdCI6MTcyMzEwOTM3NCwibmJmIjoxNzIzMTA5Mzc0LCJleHAiOjE3MjMxMTY1NzR9.Yi0zXEGsH1PBw5WvTXK8h7M9MEvQzUhsUe5UyovTi5o";
$token = JWT::encode(
array(
"iat" => time(),
"nbf" => time(),
"exp" => time() + 3600,
"data" => array(
"student_name" => $data["student_name"],
"age" => $data["age"]
)
),
$example_key,
"HS256"
);
setcookie("token", $token, time() + 3600, "/", "", true, true);
header("Location: http://localhost/JWT_Token_Login/welcome.php");
exit();
} else {
$error = "Wrong Age";
}
} else {
$error = "Wrong Name";
}
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
<title>How to Create Login using JWT Token in PHP</title>
</head>
<body>
<div class="container">
<h1 class="text-center mt-5 mb-5">How to Create Login using JWT Token in PHP</h1>
<div class="row">
<div class="col-md-4"> </div>
<div class="col-md-4">
<?php
if ($error !== "") {
echo "<div class='alert alert-danger'>" . $error . "</div>";
}
?>
<div class="card">
<div class="card-header">Login</div>
<div class="card-body">
<form method="post">
<div class="mb-3">
<label>Name</label>
<input type="text" name="student_name" class="form-control">
</div>
<div class="mb-3">
<label>Age</label>
<input type="text" name="age" class="form-control">
</div>
<div>
<input type="submit" name="login" class="btn btn-primary" value="Login">
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
WELCOME FILE
<?php
require "vendor/autoload.php";
use Firebase\JWT\JWT;
use Firebase\JWT\Key;
$example_key = "Example_key";
if (isset($_COOKIE["token"])) {
try {
$decoded = JWT::decode($_COOKIE["token"], new Key($example_key, "HS256"));
} catch (Exception $e) {
$error = $e->getMessage();
echo $error;
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
<title>How to Create Login in PHP using JWT Token</title>
</head>
<body>
<div class="container">
<h1 class="text-center">How to Create Login in PHP using JWT Token</h1>
<div class="row">
<div class="col-md-4"> </div>
<div class="col-md-4 text-center">
<h1>Welcome <b><?php echo $decoded->data->student_name; ?></b> </h1>
<a href="logout.php">Logout</a>
</div>
</div>
</div>
</body>
</html>
LOGOUT FILE






.png)
Comments
Post a Comment