Files
portal-api/app/Http/Controllers/admin/LoginController.php
T
2025-07-24 16:18:27 +07:00

49 lines
1.6 KiB
PHP

<?php
namespace App\Http\Controllers\admin;
use Illuminate\Support\Facades\Cookie;
use App\Http\Controllers\Controller;
use App\Models\User;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class LoginController extends Controller
{
//
public function index()
{
return view("admin.user.login");
}
public function store(Request $request)
{
$request->validate([
'username' => 'required|min:3',
'password' => 'required|min:3'
]);
$user = User::where('username',$request->username)->first();
if (! $user) return back()->withErrors('Không tìm thấy thông tin người dùng');
if (Auth::guard('admins')->attempt(['username' => $request->username,'password' => $request->password],$request->remember))
{
if (\auth()->user()->status)
{
$token = \auth()->user()->createToken('access_token',['*'],Carbon::now()->addDay())->plainTextToken;
Cookie::queue('accessToken',$token,24*60);
if (Cookie::has('admin_prev_url'))
{
Cookie::queue(Cookie::forget('admin_prev_url'));
return redirect(Cookie::get('admin_prev_url'));
}
return redirect()->route('dashboard')->with('success', 'Đã đăng nhập thành công!');
}
auth('admins')::logout();
return back()->withErrors('Tài khoản bị khoá, vui lòng liên hệ quản trị viên');
}
return back()->withErrors('Thông tin đăng nhập không hợp lệ');
}
}