|
|
|
|
@ -31,32 +31,37 @@ class AuthController extends Controller
|
|
|
|
|
*/ |
|
|
|
|
public function login(Request $request) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
// Verifica que la clave secreta esté presente en el cuerpo de la solicitud POST |
|
|
|
|
if (! $request->has('clave_secreta')) { |
|
|
|
|
return response()->json(['message' => trans('api.SIN_CLAVE')], HttpStatus::BAD_REQUEST); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Verificar la clave secreta |
|
|
|
|
if ($request->clave_secreta !== config('app.clave')) { |
|
|
|
|
|
|
|
|
|
// Verificar la clave secreta proporcionada en los datos POST |
|
|
|
|
$claveSecreta = $request->input('clave_secreta'); |
|
|
|
|
|
|
|
|
|
if ($claveSecreta !== config('app.clave')) { |
|
|
|
|
return response()->json(['message' => trans('api.CLAVE_INCORRECTA')], HttpStatus::UNAUTHORIZED); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$expirationTime = time() + (15 * 60); // 15 minuto |
|
|
|
|
|
|
|
|
|
// Datos que quieres incluir en el JWT (puedes personalizarlo) |
|
|
|
|
|
|
|
|
|
$expirationTime = time() + (15 * 60); // 15 minutos |
|
|
|
|
|
|
|
|
|
// Datos que quieres incluir en el JWT |
|
|
|
|
$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 |
|
|
|
|
'clave_secreta' => $claveSecreta, // 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, |
|
|
|
|
'expiracion_segundos' => $expirationTime - time(), // Tiempo en segundos hasta la expiración |
|
|
|
|
'tiempo_expiracion' => date('Y-m-d H:i:s', $expirationTime), // Fecha y hora de expiración |
|
|
|
|
]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|