✏️ 正在编辑: Auth.php
路径:
/srv/systems_dir/koruspay/application/models/Auth.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php use OTPHP\TOTP; class Model_Auth extends Core_Model { public static function recordSecret($secret) { $users = new Model_User(); $user = $users->display(Yuppie_Auth::getIdentity()->id); if (empty($user->secret_gauth)) { Yuppie_Log::write("Gravando secret no cadastro do usuário, secret: " . $secret); $result = $users->update(['secret_gauth' => $secret], Yuppie_Auth::getIdentity()->id); if (!$result) { throw new Exception("Erro ao salvar o secret no usuário."); } return true; } } public static function displaySecret() { $users = new Model_User(); $user = $users->display(Yuppie_Auth::getIdentity()->id); if (empty($user->secret_gauth)) { return false; } return $user->secret_gauth; } public static function generateQrcode() { Yuppie_Log::write("Criando QR Code para autenticação."); $totp = TOTP::create(); $totp->setLabel(Yuppie_Auth::getIdentity()->email); $totp->setIssuer('KorusPay'); $secret = $totp->getSecret(); // Salva no banco $qrCodeUrl = $totp->getProvisioningUri(); // Usado pra gerar o QR code if (!$qrCodeUrl || !$secret) { throw new Exception("Erro ao salvar o secret no usuário."); } return ['qrcode' => $qrCodeUrl, 'secret' => $secret]; } public static function autenticate($token) { Yuppie_Log::write("Autenticando token: " . $token); $secret = self::displaySecret(); $totp = TOTP::create($secret); return $totp->verify($token); } }
💾 保存文件
← 返回文件管理器