46 lines
1.2 KiB
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();
|
|
}
|
|
}
|