38 lines
928 B
PHP
38 lines
928 B
PHP
<?php
|
|
|
|
namespace App\Endpoint\Api\Http\Controllers;
|
|
|
|
use App\Constants\Device;
|
|
use App\Endpoint\Api\Http\Requests\LoginRequest;
|
|
use App\Exceptions\BizException;
|
|
use App\Models\User;
|
|
|
|
class LoginController extends Controller
|
|
{
|
|
/**
|
|
* 登录
|
|
*
|
|
* @param \App\Endpoint\Api\Http\Requests\LoginRequest $request
|
|
* @return \Illuminate\Http\JsonResponse
|
|
*/
|
|
public function __invoke(LoginRequest $request)
|
|
{
|
|
$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)
|
|
);
|
|
}
|
|
}
|