1 changed files with 35 additions and 0 deletions
@ -0,0 +1,35 @@
|
||||
<?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); |
||||
} |
||||
|
||||
// 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' => time() + 60*15, // 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]); |
||||
} |
||||
} |
||||
Loading…
Reference in new issue