validate([ 'username' => 'required|string', 'password' => 'required|string' ]); $user = User::where('username', $request->username) ->where('role', 'santri') ->first(); if (!$user || !Hash::check($request->password, $user->password)) { return response()->json([ 'message' => 'Username atau password salah, atau bukan akun santri' ], 401); } $token = $user->createToken('auth_token')->plainTextToken; $userArray = $user->toArray(); $userArray['token'] = $token; return response()->json([ 'message' => 'Login berhasil', 'access_token' => $token, 'token_type' => 'Bearer', 'user' => $userArray ]); } public function logout(Request $request) { $request->user()->currentAccessToken()->delete(); return response()->json(['message' => 'Logout berhasil']); } public function me(Request $request) { return response()->json($request->user()); } public function resetPassword(Request $request) { $request->validate([ 'username' => 'required|exists:users,username', 'password' => 'required|min:6|confirmed', ]); $user = User::where('username', $request->username)->first(); $user->password = Hash::make($request->password); $user->save(); return response()->json(['message' => 'Password berhasil direset.']); } }