Compare commits

...

2 Commits

Author SHA1 Message Date
timotiabbauftech
e1a0711082 Merge branch 'production' of https://git.abbauf.com/Magang-2025/Kasir into production 2025-09-04 14:13:56 +07:00
timotiabbauftech
4afdcada62 (feat AuthControlller, Update User.php, auth.php, web.php] 2025-09-04 14:13:53 +07:00
4 changed files with 19 additions and 9 deletions

View File

@ -5,6 +5,7 @@ namespace App\Http\Controllers;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use App\Models\User; use App\Models\User;
use Illuminate\Support\Facades\Hash;
class AuthController extends Controller class AuthController extends Controller
{ {
@ -12,19 +13,20 @@ class AuthController extends Controller
public function login(Request $request) public function login(Request $request)
{ {
$request->validate([ $request->validate([
'nama' => 'required|string', 'nama' => 'required',
'password' => 'required|int', 'password' => 'required',
]); ]);
// Cek kredensial // cari user berdasarkan nama
if (!Auth::attempt($request->only('nama', 'password'))) { $user = User::where('nama', $request->nama)->first();
if (!$user || !Hash::check($request->password, $user->password)) {
return response()->json([ return response()->json([
'message' => 'Login gagal, periksa kembali nama atau password.' 'message' => 'Nama atau password salah'
], 401); ], 401);
} }
$user = User::where('nama', $request->nama)->first(); // buat token Sanctum
$token = $user->createToken('auth_token')->plainTextToken; $token = $user->createToken('auth_token')->plainTextToken;
return response()->json([ return response()->json([

View File

@ -8,6 +8,7 @@ use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable; use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens; use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable class User extends Authenticatable
{ {
/** @use HasFactory<\Database\Factories\UserFactory> */ /** @use HasFactory<\Database\Factories\UserFactory> */
@ -49,6 +50,6 @@ class User extends Authenticatable
public function getAuthIdentifierName() public function getAuthIdentifierName()
{ {
return 'nama'; return 'id';
} }
} }

View File

@ -40,6 +40,11 @@ return [
'driver' => 'session', 'driver' => 'session',
'provider' => 'users', 'provider' => 'users',
], ],
'api' => [
'driver' => 'sanctum',
'provider' => 'users',
],
], ],
/* /*

View File

@ -8,8 +8,10 @@
use App\Http\Controllers\SalesController; use App\Http\Controllers\SalesController;
use App\Http\Controllers\UserController; use App\Http\Controllers\UserController;
use App\Http\Controllers\TransaksiController; use App\Http\Controllers\TransaksiController;
use App\Http\Controllers\LaporanController;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
Route::prefix('api')->group(function () { Route::prefix('api')->group(function () {
// Backend API // Backend API
Route::apiResource('nampan', NampanController::class); Route::apiResource('nampan', NampanController::class);
@ -55,7 +57,7 @@ Route::prefix('api')->group(function () {
Route::delete('foto/reset/{user_id}', [FotoSementaraController::class, 'reset']); Route::delete('foto/reset/{user_id}', [FotoSementaraController::class, 'reset']);
Route::post('/login', [AuthController::class, 'login'])->middleware('guest')->name('login'); Route::post('/login', [AuthController::class, 'login'])->middleware('guest')->name('login');
Route::post('/logout', [AuthController::class, 'logout'])->middleware('auth'); Route::post('/logout', [AuthController::class, 'logout'])->middleware('auth:sanctum')->name('logout');
}); });
// Frontend SPA // Frontend SPA