diff --git a/app/auth/providers/[name]/callback/page.tsx b/app/auth/providers/[name]/callback/page.tsx
new file mode 100644
index 0000000..9b9cf13
--- /dev/null
+++ b/app/auth/providers/[name]/callback/page.tsx
@@ -0,0 +1,20 @@
+import React from "react";
+
+const page = async ({
+ params,
+ searchParams,
+}: {
+ params: { name: string };
+ searchParams: { [key: string]: string | string[] | undefined };
+}) => {
+ const resolvedParams = await params;
+ const resolvedSearchParams = await searchParams;
+
+ return (
+
+
Loading....
+
+ );
+};
+
+export default page;
diff --git a/shared/widgets/signin/actions/getOauthEndpoint.ts b/shared/widgets/signin/actions/getOauthEndpoint.ts
index 128648e..913953d 100644
--- a/shared/widgets/signin/actions/getOauthEndpoint.ts
+++ b/shared/widgets/signin/actions/getOauthEndpoint.ts
@@ -1,6 +1,20 @@
-"use client";
+"use server";
import { backendFetch, BackendResponse } from "@/shared/helper/backendFetch";
-export const getOauthEndpoint = async (url: string) => {
- return (await backendFetch(url)) as BackendResponse<{ endpointUrl: string }>;
+interface GetOauthEndpointParams {
+ endpointUrl: string;
+ providerName: string;
+}
+
+export const getOauthEndpoint = async ({
+ endpointUrl,
+ providerName,
+}: GetOauthEndpointParams) => {
+ const envKey = providerName.toUpperCase() + "_CALLBACK_URL";
+
+ return (await backendFetch(
+ `${endpointUrl}?callback=${process.env.APP_URL}${process.env[envKey]}`
+ )) as BackendResponse<{
+ endpointUrl: string;
+ }>;
};
diff --git a/shared/widgets/signin/components/SignInCard.tsx b/shared/widgets/signin/components/SignInCard.tsx
index 558ae22..d2a236c 100644
--- a/shared/widgets/signin/components/SignInCard.tsx
+++ b/shared/widgets/signin/components/SignInCard.tsx
@@ -33,8 +33,14 @@ const SignInCard = () => {
})();
}, []);
- const getOauthEndpointUrl = async (providerReqEndpoint: string) => {
- const res = await getOauthEndpoint(providerReqEndpoint);
+ const getOauthEndpointUrl = async (
+ providerReqEndpoint: string,
+ providerName: string
+ ) => {
+ const res = await getOauthEndpoint({
+ endpointUrl: providerReqEndpoint,
+ providerName: providerName,
+ });
router.push(res.data?.endpointUrl || "/");
};
@@ -66,7 +72,9 @@ const SignInCard = () => {
variant="outline"
className="w-full text-neutral-300 text-xs font-normal"
disabled={isLoading}
- onClick={() => getOauthEndpointUrl(provider.req_endpoint)}
+ onClick={() =>
+ getOauthEndpointUrl(provider.req_endpoint, provider.name)
+ }
>
{isLoading && }