catchAdmin/modules/User/Http/Controllers/AuthController.php

50 lines
1.2 KiB
PHP
Raw Normal View History

2022-12-05 23:01:12 +08:00
<?php
namespace Modules\User\Http\Controllers;
use Catch\Base\CatchController as Controller;
use Catch\Exceptions\FailedException;
use Illuminate\Auth\RequestGuard;
2022-12-05 23:01:12 +08:00
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Event;
2023-02-21 09:12:24 +08:00
use Illuminate\Support\Facades\Hash;
2022-12-05 23:01:12 +08:00
use Modules\User\Events\Login;
use Modules\User\Models\User;
2022-12-05 23:01:12 +08:00
class AuthController extends Controller
{
/**
* @param Request $request
* @return array
*/
public function login(Request $request): array
2022-12-05 23:01:12 +08:00
{
/* @var User $user */
$user = User::query()->where('email', $request->get('email'))->first();
2022-12-05 23:01:12 +08:00
Event::dispatch(new Login($request, $user));
2022-12-05 23:01:12 +08:00
2023-02-21 09:12:24 +08:00
if ($user && Hash::check($request->get('password'), $user->password)) {
2023-02-20 16:15:54 +08:00
$token = $user->createToken('token')->plainTextToken;
return compact('token');
2022-12-05 23:01:12 +08:00
}
2023-02-20 16:15:54 +08:00
throw new FailedException('登录失败!请检查邮箱或者密码');
2022-12-05 23:01:12 +08:00
}
/**
* logout
*
* @return bool
*/
public function logout(): bool
2022-12-05 23:01:12 +08:00
{
/* @var User $user */
$user = Auth::guard(getGuardName())->user();
2022-12-05 23:01:12 +08:00
return $user->currentAccessToken()->delete();
2022-12-05 23:01:12 +08:00
}
}