6
0
Fork 0
jiqu-library-server/app/Http/Controllers/Api/V1/Auth/LoginController.php

46 lines
1.2 KiB
PHP

<?php
namespace App\Http\Controllers\Api\V1\Auth;
use App\Constants\Device;
use App\Exceptions\BizException;
use App\Http\Controllers\Api\V1\Controller;
use App\Http\Requests\Api\V1\LoginRequest;
use App\Models\User;
use App\Services\CaptchaService;
class LoginController extends Controller
{
/**
* 登录
*
* @param \App\Http\Requests\Api\V1\LoginRequest $request
* @param \App\Services\CaptchaService $captchaService
* @return \Illuminate\Http\JsonResponse
*/
public function __invoke(LoginRequest $request, CaptchaService $captchaService)
{
$captchaService->validatePhrase(
(string) $request->input('captcha_key'),
(string) $request->input('captcha_phrase')
);
$user = User::where('phone', $request->input('phone'))->first();
if (! $user?->verifyPassword($request->input('password'))) {
throw new BizException(__('Incorrect account or password'));
}
$user->update([
'last_login_at' => now(),
'last_login_ip' => $request->realIp(),
]);
$user->tokens()->delete();
return response()->json(
$user->createDeviceToken(Device::UNIAPP)
);
}
}