110 lines
3.0 KiB
PHP
110 lines
3.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api\V2;
|
|
|
|
use App\Notifications\AppEmailVerificationNotification;
|
|
use Illuminate\Http\Request;
|
|
use App\Models\User;
|
|
use App\Models\PasswordReset;
|
|
use App\Notifications\PasswordResetRequest;
|
|
use Illuminate\Support\Str;
|
|
use App\Http\Controllers\OTPVerificationController;
|
|
|
|
use Hash;
|
|
|
|
class PasswordResetController extends Controller
|
|
{
|
|
public function forgetRequest(Request $request)
|
|
{
|
|
if ($request->send_code_by == 'email') {
|
|
$user = User::where('email', $request->email_or_phone)->first();
|
|
} else {
|
|
$user = User::where('phone', $request->email_or_phone)->first();
|
|
}
|
|
|
|
|
|
if (!$user) {
|
|
return response()->json([
|
|
'result' => false,
|
|
'message' => translate('User is not found')
|
|
], 404);
|
|
}
|
|
|
|
if ($user) {
|
|
$user->verification_code = rand(100000, 999999);
|
|
$user->save();
|
|
if ($request->send_code_by == 'phone') {
|
|
|
|
$otpController = new OTPVerificationController();
|
|
$otpController->send_code($user);
|
|
} else {
|
|
try {
|
|
|
|
$user->notify(new AppEmailVerificationNotification());
|
|
} catch (\Exception $e) {
|
|
}
|
|
}
|
|
}
|
|
|
|
return response()->json([
|
|
'result' => true,
|
|
'message' => translate('A code is sent')
|
|
], 200);
|
|
}
|
|
|
|
public function confirmReset(Request $request)
|
|
{
|
|
$user = User::where('verification_code', $request->verification_code)->first();
|
|
|
|
if ($user != null) {
|
|
$user->verification_code = null;
|
|
$user->password = Hash::make($request->password);
|
|
$user->save();
|
|
return response()->json([
|
|
'result' => true,
|
|
'message' => translate('Your password is reset.Please login'),
|
|
], 200);
|
|
} else {
|
|
return response()->json([
|
|
'result' => false,
|
|
'message' => translate('No user is found'),
|
|
], 200);
|
|
}
|
|
}
|
|
|
|
public function resendCode(Request $request)
|
|
{
|
|
|
|
if ($request->verify_by == 'email') {
|
|
$user = User::where('email', $request->email_or_phone)->first();
|
|
} else {
|
|
$user = User::where('phone', $request->email_or_phone)->first();
|
|
}
|
|
|
|
|
|
if (!$user) {
|
|
return response()->json([
|
|
'result' => false,
|
|
'message' => translate('User is not found')
|
|
], 404);
|
|
}
|
|
|
|
$user->verification_code = rand(100000, 999999);
|
|
$user->save();
|
|
|
|
if ($request->verify_by == 'email') {
|
|
$user->notify(new AppEmailVerificationNotification());
|
|
} else {
|
|
$otpController = new OTPVerificationController();
|
|
$otpController->send_code($user);
|
|
}
|
|
|
|
|
|
|
|
return response()->json([
|
|
'result' => true,
|
|
'message' => translate('A code is sent again'),
|
|
], 200);
|
|
}
|
|
}
|