codigo actual del servidor, con avances de joan
This commit is contained in:
166
app/Http/Controllers/UserController.php
Normal file
166
app/Http/Controllers/UserController.php
Normal file
@@ -0,0 +1,166 @@
|
||||
<?php
|
||||
|
||||
/* by joan 5-08-2023 */
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Session;
|
||||
use App\Notifications\UserCredentialsNotification;
|
||||
use App\Notifications\EmailVerificationNotification;
|
||||
|
||||
class UserController extends Controller
|
||||
{
|
||||
public function register_email(Request $request)
|
||||
{
|
||||
// Validar los datos recibidos en la solicitud
|
||||
$request->validate([
|
||||
'email' => 'required|email',
|
||||
]);
|
||||
|
||||
// Buscar el usuario por su dirección de correo electrónico
|
||||
$user = User::where('email', $request->email)->first();
|
||||
if ($user && $user->email_verified_at != NULL) {
|
||||
// Si el usuario ya existe y su campo "verification_code" es verdadero, no enviar nuevamente
|
||||
return response()->json(['message' => 'La cuenta ya existe'], 400);
|
||||
}
|
||||
|
||||
if (!$user) {
|
||||
// Si el usuario no existe, generar un código de verificación aleatorio de 6 dígitos numéricos
|
||||
$verificationCode = rand(10000, 99999);
|
||||
|
||||
// Crear un nuevo usuario con el correo electrónico y el código de verificación
|
||||
$user = User::create([
|
||||
'email' => $request->email,
|
||||
'verification_code' => $verificationCode,
|
||||
]);
|
||||
|
||||
// Guardar el correo en sesión
|
||||
session(['registered_email' => $request->email]);
|
||||
} else {
|
||||
// Si el usuario ya existe pero no se ha enviado el código, generar un nuevo código
|
||||
$verificationCode = rand(10000, 99999);
|
||||
|
||||
// Actualizar el código de verificación y el campo "verification_code"
|
||||
$user->verification_code = $verificationCode;
|
||||
$user->save();
|
||||
}
|
||||
|
||||
// Enviar la notificación al correo del usuario con el código de verificación
|
||||
$user->notify(new EmailVerificationNotification($verificationCode));
|
||||
|
||||
// Devolver una respuesta (opcional)
|
||||
return response()->json(['message' => 'Usuario creado correctamente'], 201);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* // Validar los datos recibidos en la solicitud
|
||||
$request->validate([
|
||||
'email' => 'required|email',
|
||||
]);
|
||||
|
||||
// Buscar el usuario por su dirección de correo electrónico
|
||||
$user = User::where('email', $request->email)->first();
|
||||
|
||||
// Si el usuario ya existe, reenviar el código de verificación existente
|
||||
if ($user) {
|
||||
$verificationCode = $user->verification_code;
|
||||
} else {
|
||||
// Generar un código de verificación aleatorio de 6 dígitos numéricos
|
||||
$verificationCode = rand(100000, 999999);
|
||||
|
||||
// Crear un nuevo usuario con el correo electrónico y el código de verificación
|
||||
$user = User::create([
|
||||
'email' => $request->email,
|
||||
'verification_code' => $verificationCode,
|
||||
]);
|
||||
}
|
||||
|
||||
// Enviar la notificación al correo del usuario con el código de verificación
|
||||
$user->notify(new EmailVerificationNotification($verificationCode));
|
||||
|
||||
// Devolver una respuesta (opcional)
|
||||
return response()->json(['message' => 'Usuario creado correctamente'], 201); */
|
||||
public function verify_code(Request $request)
|
||||
{
|
||||
// Validar el correo electrónico
|
||||
$request->validate([
|
||||
'email' => 'required|email',
|
||||
'codes' => 'required'
|
||||
]);
|
||||
|
||||
// Verificar si el correo electrónico coincide con el almacenado en la sesión
|
||||
/* if ($request->email !== session('registered_email')) {
|
||||
return response()->json(['message' => 'Correo no coincide'], 400);
|
||||
} */
|
||||
|
||||
// Buscar el usuario por su dirección de correo electrónico
|
||||
$user = User::where('email', $request->email)->first();
|
||||
|
||||
// Verificar si el usuario y el código coinciden
|
||||
if ($user && $user->verification_code === $request->codes) {
|
||||
// Cambiar la lógica aquí para redireccionar o retornar otro mensaje
|
||||
$user->email_verified_at = now();
|
||||
$temporaryPassword = Str::random(8);
|
||||
$user->password = Hash::make($temporaryPassword);
|
||||
|
||||
if ($request->account_type == "seller") {
|
||||
$user->user_type = "seller";
|
||||
}
|
||||
|
||||
$user->save();
|
||||
|
||||
// Enviar la notificación con las credenciales
|
||||
$user->notify(new UserCredentialsNotification($temporaryPassword));
|
||||
|
||||
return response()->json(['message' => 'Código verificado correctamente']);
|
||||
} else {
|
||||
return response()->json(['message' => 'Código no coincide'], 400);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* public function register_email(Request $request)
|
||||
{
|
||||
dd("si");
|
||||
|
||||
// Validar los datos recibidos en la solicitud
|
||||
$request->validate([
|
||||
'email' => 'required|email',
|
||||
]);
|
||||
|
||||
// Buscar el usuario por su dirección de correo electrónico
|
||||
$user = User::where('email', $request->email)->first();
|
||||
if ($user && $user->verification_code == "true") {
|
||||
// Si el usuario ya existe y su campo "verification_code" es verdadero, no enviar nuevamente
|
||||
return response()->json(['message' => 'La cuenta ya existe'], 400);
|
||||
}
|
||||
|
||||
if (!$user) {
|
||||
// Si el usuario no existe, generar un código de verificación aleatorio de 6 dígitos numéricos
|
||||
$verificationCode = rand(100000, 999999);
|
||||
|
||||
// Crear un nuevo usuario con el correo electrónico y el código de verificación
|
||||
$user = User::create([
|
||||
'email' => $request->email,
|
||||
'verification_code' => $verificationCode,
|
||||
]);
|
||||
} else ($user && !$user->verification_code) {
|
||||
// Si el usuario ya existe pero no se ha enviado el código, generar un nuevo código
|
||||
$verificationCode = rand(100000, 999999);
|
||||
|
||||
// Actualizar el código de verificación y el campo "verification_code"
|
||||
$user->verification_code = $verificationCode;
|
||||
$user->save();
|
||||
}
|
||||
|
||||
// Enviar la notificación al correo del usuario con el código de verificación
|
||||
$user->notify(new EmailVerificationNotification($verificationCode));
|
||||
|
||||
// Devolver una respuesta (opcional)
|
||||
return response()->json(['message' => 'Usuario creado correctamente'], 201);
|
||||
} */
|
||||
Reference in New Issue
Block a user