validate([ 'email' => ['required', 'email'], 'password' => ['required', 'string'], ]); if (!Auth::attempt($credentials)) { return response()->json([ 'message' => 'Email dan/atau password tidak sesuai' ], 401); } $user = Auth::user(); $user->tokens()->delete(); $token = $user->createToken('mobile-token')->plainTextToken; return response()->json([ 'access_token' => $token, 'token_type' => 'Bearer', ]); } public function signup(Request $request): JSONResponse { $credentials = $request->validate([ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'email', 'max:255', 'unique:users'], 'password' => ['required', 'string', 'min:8', 'confirmed'], 'role' => ['string'], ]); $user = User::create([ 'name' => $credentials['name'], 'email' => $credentials['email'], 'password' => Hash::make($credentials['password']), 'role' => $credentials['role'], ]); $profile = Profile::create([ 'nama' => $credentials['name'], 'email' => $credentials['email'], 'role' => $credentials['role'], 'user_id' => $user->id, 'created_by' => $user->id, 'updated_by' => $user->id, ]); if (!Auth::attempt($credentials)) { return response()->json([ 'message' => 'Email dan/atau password tidak sesuai' ], 401); } $user = Auth::user(); $user->tokens()->delete(); $token = $user->createToken('mobile-token')->plainTextToken; return response()->json([ 'access_token' => $token, 'token_type' => 'Bearer', ]); } public function me(Request $request): JSONResponse { return response()->json(new UserResource($request->user())); } public function logout(Request $request): JSONResponse { $request->user()->currentAccessToken()->delete(); return response()->json([ 'message' => 'Berhasil logout', ]); } }