You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

41 lines
1.3 KiB

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Firebase\JWT\JWT;
use Firebase\JWT\Key;
class AuthController extends Controller
{
public function login(Request $request)
{
$request->validate([
'clave_secreta' => 'required',
]);
// Verificar la clave secreta
if ($request->clave_secreta !== config('app.clave')) {
return response()->json(['message' => 'Credenciales inválidas'], 401);
}
$expirationTime = time() + (15 * 60); // 15 minuto
// Datos que quieres incluir en el JWT (puedes personalizarlo)
$payload = [
'iss' => "tu-dominio.com", // Issuer del token
'iat' => time(), // Hora en que se creó el token
'exp' => $expirationTime, // Expiración de 15 minutos
'clave_secreta' => $request->clave_secreta // Datos personalizados en el token
];
// Generar el token JWT usando la clave secreta desde el .env
$jwt = JWT::encode($payload, config('app.jwt_secret'), 'HS256');
return response()->json([
'token' => $jwt,
'expires_in' => $expirationTime - time(), // Tiempo en segundos hasta la expiración
'expiration_time' => date('Y-m-d H:i:s', $expirationTime) // Fecha y hora de expiración
]);
}
}