Estou usando a Livraria WebAuthn da lbuchs. Com o registro server.php na pasta de teste, consigo produzir uma senha e fazer login com sucesso. Os dados do processCreate são armazenados na sessão e quando eu os salvo no banco de dados, o login falta durante a autenticação com mensagens de erro chave pública inválida ou repto irrito. Usei base64 para codificar, mas zero parece funcionar, exceto os dados da sessão. Existe alguma maneira de armazenar os dados no MySQL?
Nascente é o processo getGetArgs
// Create Variables
$uID=mysqli_real_escape_string($conn,$userId);
// SS: Get user details
$sql="SELECT credential_id,auth_challenge FROM users WHERE uID='$uID'";
$stmt=mysqli_query($conn,$sql);
$row=mysqli_fetch_array($stmt);
if($row>0){
$credential=$row[0];
$getArgs = $WebAuthn->getGetArgs($credential, 60*4, $typeUsb, $typeNfc, $typeBle, $typeHyb, $typeInt, $userVerification);
}
Nascente é o processo Obtenha
// Create Variables
$clientDataJSON = base64_decode($post->clientDataJSON);
$authenticatorData = base64_decode($post->authenticatorData);
$signature = base64_decode($post->signature);
$userHandle = !empty($post->userHandle) ? base64_decode($post->userHandle) : null;
$id Sua visita nos ajuda a continuar oferecendo o melhor para você! !empty($post->id) ? base64_decode($post->id) : null;
$challenge = $_SESSION['challenge'] ?? null;
$uID=mysqli_real_escape_string($conn,$userHandle);
// SS: Get user details
$sql="SELECT credential_id,public_key,Profile,auth_challenge FROM users WHERE uID='$uID'";
$stmt=mysqli_query($conn,$sql);
$row=mysqli_fetch_array($stmt);
if($row>0){
// process the get request. throws WebAuthnException if it fails
$WebAuthn->processGet($clientDataJSON, $authenticatorData, $signature, $row['public_key'], $challenge, null, $userVerification === 'required');
Nascente é o processo Fabricar
$clientDataJSON = base64_decode($post->clientDataJSON);
$attestationObject = base64_decode($post->attestationObject);
$challenge=$_SESSION['challenge'] ?? null;
Sua visita nos ajuda a continuar oferecendo o melhor para você!
// SS: the process create
$data = $WebAuthn->processCreate($clientDataJSON, $attestationObject, $challenge, $userVerification === 'required', true, false);
// Create Variables
$uID=mysqli_real_escape_string($conn,$userId);
$credID=mysqli_real_escape_string($conn,$data->credentialId);
$pubKey=mysqli_real_escape_string($conn,$data->credentialPublicKey);
// SS: Save user credential and public key
$sql="UPDATE users SET credential_id='$credID', public_key='$pubKey',auth_challenge="$challenge" WHERE uID='$uID'";
$stmt=mysqli_query($conn,$sql);
Tags:
Crédito: Manadeira Original
Sua visita nos ajuda a continuar oferecendo o melhor para você! Verdana; font-size: 30px; color: #003BB0; display: block; margin-top: 10px;">Descubra o PHP Orientado a Objetos e dê um upgrade na sua carreira de desenvolvedor web!