Php ile bu işlemi böyle yapabilirsiniz;



<?php
// Veritabanına bağlanma (MySQL PDO)
$pdo = new PDO('mysql:host=localhost;dbname=testdb', 'kullanici', 'sifre');

// Tek kullanımlık link oluşturma ve veritabanına kaydetme
function generateOneTimeLink($baseUrl, $pdo) {
// Benzersiz bir token oluştur
$token = bin2hex(random_bytes(16)); // 32 karakter uzunluğunda rastgele bir token


$expiresAt = new DateTime('+1 hour');

// Token'ı veritabanına kaydet
$stmt = $pdo->prepare("INSERT INTO one_time_links (token, expires_at) VALUES (:token, :expires_at)");
$stmt->execute([
':token' => $token,
':expires_at' => $expiresAt->format('Y-m-d H:i:s')
]);

// Kullanıcıya göndermek için link oluştur
return $baseUrl . '?token=' . $token;
}

// Token'ı kontrol etme ve geçersiz kılma
function validateOneTimeLink($token, $pdo) {
// Token'ın geçerli olup olmadığını kontrol et
$stmt = $pdo->prepare("SELECT * FROM one_time_links WHERE token = :token AND used = 0 AND expires_at > NOW()");
$stmt->execute([':token' => $token]);
$link = $stmt->fetch(PDO::FETCH_ASSOC);

if ($link) {
// Token'ı kullandı olarak işaretle
$stmt = $pdo->prepare("UPDATE one_time_links SET used = 1 WHERE token = :token");
$stmt->execute([':token' => $token]);
return true; // Geçerli link
}

return false; // Geçersiz link
}

// Tek kullanımlık link oluşturma işlemi
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$baseUrl = "http://localhost/tek_kullanimlik_link.php"; // Kendi URL'inizi buraya yazın
$oneTimeLink = generateOneTimeLink($baseUrl, $pdo);
echo "Tek kullanımlık link: <a href="$oneTimeLink">$oneTimeLink</a>";
}

// Tek kullanımlık link doğrulama işlemi
if (isset($_GET['token'])) {
$token = $_GET['token'];

if (validateOneTimeLink($token, $pdo)) {
echo "Link geçerli, işleminize devam edebilirsiniz.";
} else {
echo "Link geçersiz veya süresi dolmuş.";
}
}
?>

<!DOCTYPE html>
<html>
<head>
<title>Tek Kullanımlık Link Oluşturma</title>
</head>
<body>
<h1>Tek Kullanımlık Link Oluşturma</h1>
<form method="POST">
<button type="submit">Tek Kullanımlık Link Oluştur</button>
</form>
</body>
</html>