/
petrhlam
/
project_moon
Обзор
Документация
Войти
/
petrhlam
/
project_moon
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
api/app/Http/Controllers/AuthController.php
144 строки
4 KB
Andrey Sukhikh
Added laravel backend
18 май 2025, 23:08
18 май 2025, 23:08
83488a7
Код
Авторство
О чём код?
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Illuminate\Support\Facades\Auth; class AuthController extends Controller { public function login(Request $request) { // Валидация $request->validate([ 'email' => 'required|email', 'password' => 'required', ]); // Поиск пользователя $user = User::where('email', $request->email)->first(); // Сравнение пароля напрямую (НЕБЕЗОПАСНО в проде) if (!$user || $request->password !== $user->password) { return response()->json(['message' => 'Неверный логин или пароль'], 401); } // Генерация токена $token = $user->createToken('api-token')->plainTextToken; return response()->json([ 'message' => 'Успешный вход', 'token' => $token, ]); } public function logout(Request $request) { // Удалить все токены $request->user()->tokens()->delete(); return response()->json(['message' => 'Выход выполнен']); } public function me(Request $request) { return response()->json($request->user()); } } // namespace App\Http\Controllers; // use Illuminate\Http\Request; // use App\Models\User; // use Illuminate\Support\Facades\Hash; // use Illuminate\Support\Facades\Auth; // use Laravel\Sanctum\HasApiTokens; // class AuthController extends Controller // { // public function login(Request $request) // { // // Проверка входных данных // $request->validate([ // 'email' => 'required|email', // 'password' => 'required', // ]); // $user = User::where('email', $request->email)->first(); // // Проверка пользователя и пароля // // if (!$user || !Hash::check($request->password, $user->password)) { // // return response()->json(['message' => 'Неверный логин или пароль'], 401); // // } // if (!$user || $request->password !== $user->password) { // return response()->json(['message' => 'Неверный логин или пароль'], 401); // } // // Генерация токена для пользователя // $token = $user->createToken('YourAppName')->plainTextToken; // return response()->json([ // 'message' => 'Успешный вход', // 'token' => $token, // ], 200); // } // public function logout(Request $request) // { // // Удаление токена при выходе // $request->user()->tokens->each(function ($token) { // $token->delete(); // }); // return response()->json(['message' => 'Выход выполнен'], 200); // } // public function me(Request $request) // { // return response()->json($request->user()); // } // } // namespace App\Http\Controllers; // use Illuminate\Http\Request; // use Illuminate\Support\Facades\Auth; // class AuthController extends Controller // { // public function login(Request $request) // { // // Проверка входных данных // $credentials = $request->validate([ // 'email' => ['required', 'email'], // 'password' => ['required'], // ]); // if (Auth::attempt($credentials)) { // $request->session()->regenerate(); // return response()->json(['message' => 'Успешный вход'], 200); // } // return response()->json(['message' => 'Неверный логин или пароль'], 401); // } // public function logout(Request $request) // { // Auth::logout(); // $request->session()->invalidate(); // $request->session()->regenerateToken(); // return response()->json(['message' => 'Выход выполнен'], 200); // } // public function me(Request $request) // { // return response()->json(Auth::user()); // } // }