6
0
Fork 0
jiqu-library-server/app/Endpoint/Api/Http/Controllers/Auth/ResetPasswordController.php

46 lines
1.2 KiB
PHP

<?php
namespace App\Endpoint\Api\Http\Controllers\Auth;
use App\Endpoint\Api\Http\Controllers\Controller;
use App\Endpoint\Api\Http\Requests\ResetPasswordRequest;
use App\Exceptions\BizException;
use App\Models\SmsCode;
use App\Models\User;
use App\Services\SmsCodeService;
class ResetPasswordController extends Controller
{
/**
* 重置密码
*
* @param \App\Endpoint\Api\Http\Requests\LoginRequest $request
* @param \App\Services\SmsCodeService $smsCodeService
* @return \Illuminate\Http\JsonResponse
*/
public function __invoke(ResetPasswordRequest $request, SmsCodeService $smsCodeService)
{
$input = $request->validated();
$smsCodeService->validate(
$input['phone'],
SmsCode::TYPE_RESET_PASSWORD,
$input['verify_code']
);
$user = User::where('phone', $input['phone'])->first();
if ($user === null) {
throw new BizException(__('The phone number is not registered'));
}
$user->update([
'password' => $input['password'],
]);
$user->tokens()->delete();
return response()->noContent();
}
}