diff --git a/frontend/src/pages/integrations/gcp-secret-manager/authorize.tsx b/frontend/src/pages/integrations/gcp-secret-manager/authorize.tsx
new file mode 100644
index 000000000..f63b5a7dd
--- /dev/null
+++ b/frontend/src/pages/integrations/gcp-secret-manager/authorize.tsx
@@ -0,0 +1,96 @@
+import { useState } from "react";
+import { useRouter } from "next/router";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import { faGoogle } from "@fortawesome/free-brands-svg-icons";
+
+import {
+ useSaveIntegrationAccessToken
+} from "@app/hooks/api";
+
+import { Button, Card, CardTitle, FormControl, Input, TextArea } from "../../../components/v2";
+
+export default function GCPSecretManagerAuthorizeIntegrationPage() {
+ const router = useRouter();
+ const { mutateAsync } = useSaveIntegrationAccessToken();
+
+ const [accessToken, setAccessToken] = useState("");
+ const [accessTokenErrorText, setAccessTokenErrorText] = useState("");
+ const [isLoading, setIsLoading] = useState(false);
+
+ const handleButtonClick = async () => {
+ try {
+ setAccessTokenErrorText("");
+ if (accessToken.length === 0) {
+ setAccessTokenErrorText("Access token cannot be blank");
+ return;
+ }
+
+ console.log("setAccessTokenErrorText");
+ console.log("accessToken: ", accessToken);
+
+ // setIsLoading(true);
+
+ // const integrationAuth = await mutateAsync({
+ // workspaceId: localStorage.getItem("projectData.id"),
+ // integration: "flyio",
+ // accessId: null,
+ // accessToken,
+ // url: null,
+ // namespace: null
+ // });
+
+ // setIsLoading(false);
+
+ // router.push(`/integrations/flyio/create?integrationAuthId=${integrationAuth._id}`);
+ } catch (err) {
+ console.error(err);
+ }
+ };
+
+ return (
+
+
+ GCP Secret Manager Integration
+
+
+
+
+
+
+
+
+ );
+}
+
+GCPSecretManagerAuthorizeIntegrationPage.requireAuth = true;
diff --git a/frontend/src/views/IntegrationsPage/IntegrationPage.utils.tsx b/frontend/src/views/IntegrationsPage/IntegrationPage.utils.tsx
index bff23753a..7b88a8347 100644
--- a/frontend/src/views/IntegrationsPage/IntegrationPage.utils.tsx
+++ b/frontend/src/views/IntegrationsPage/IntegrationPage.utils.tsx
@@ -40,7 +40,8 @@ export const redirectForProviderAuth = (integrationOption: TCloudIntegration) =>
let link = "";
switch (integrationOption.slug) {
case "gcp-secret-manager":
- link = `https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/cloud-platform&response_type=code&access_type=offline&state=${state}&redirect_uri=${window.location.origin}/integrations/gcp-secret-manager/oauth2/callback&client_id=${integrationOption.clientId}`;
+ // link = `https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/cloud-platform&response_type=code&access_type=offline&state=${state}&redirect_uri=${window.location.origin}/integrations/gcp-secret-manager/oauth2/callback&client_id=${integrationOption.clientId}`;
+ link = `${window.location.origin}/integrations/gcp-secret-manager/authorize`;
break;
case "azure-key-vault":
link = `https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=${integrationOption.clientId}&response_type=code&redirect_uri=${window.location.origin}/integrations/azure-key-vault/oauth2/callback&response_mode=query&scope=https://vault.azure.net/.default openid offline_access&state=${state}`;