validate([ 'token_name' => ['required', 'string', 'max:255'], ]); $token = $request->user()->createToken($validated['token_name']); return response()->json([ 'token' => $token->plainTextToken, 'type' => 'Bearer', ], 201); } /** * List all tokens for the authenticated user. */ public function tokens(Request $request): JsonResponse { $tokens = $request->user()->tokens()->get(['id', 'name', 'last_used_at', 'created_at']); return response()->json([ 'data' => $tokens, ]); } /** * Revoke a specific token. */ public function revokeToken(Request $request, string $tokenId): JsonResponse { $deleted = $request->user()->tokens()->where('id', $tokenId)->delete(); if (!$deleted) { return response()->json([ 'message' => 'Token not found', ], 404); } return response()->json([ 'message' => 'Token revoked successfully', ]); } /** * Revoke all tokens for the authenticated user. */ public function revokeAllTokens(Request $request): JsonResponse { $request->user()->tokens()->delete(); return response()->json([ 'message' => 'All tokens revoked successfully', ]); } }