Skip to content

Commit 5eca0fb

Browse files
committed
feat: add getConfiguration method to Asgardeo client interfaces and implementations
1 parent 02a8cd4 commit 5eca0fb

File tree

8 files changed

+27
-10
lines changed

8 files changed

+27
-10
lines changed

packages/javascript/src/AsgardeoJavaScriptClient.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ abstract class AsgardeoJavaScriptClient<T = Config> implements AsgardeoClient<T>
4646

4747
abstract isSignedIn(): Promise<boolean>;
4848

49+
abstract getConfiguration(): T;
50+
4951
abstract signIn(
5052
options?: SignInOptions,
5153
sessionId?: string,

packages/javascript/src/models/client.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ export interface AsgardeoClient<T> {
5757
*/
5858
switchOrganization(organization: Organization): Promise<void>;
5959

60+
getConfiguration(): T;
61+
6062
/**
6163
* Gets user information from the session.
6264
*

packages/nextjs/src/AsgardeoNextClient.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,8 @@ class AsgardeoNextClient<T extends AsgardeoNextConfig = AsgardeoNextConfig> exte
9090
return Promise.resolve(true);
9191
}
9292

93-
const {baseUrl, clientId, clientSecret, signInUrl, afterSignInUrl, afterSignOutUrl, signUpUrl, ...rest} = decorateConfigWithNextEnv(config);
93+
const {baseUrl, clientId, clientSecret, signInUrl, afterSignInUrl, afterSignOutUrl, signUpUrl, ...rest} =
94+
decorateConfigWithNextEnv(config);
9495

9596
this.isInitialized = true;
9697

@@ -149,6 +150,10 @@ class AsgardeoNextClient<T extends AsgardeoNextConfig = AsgardeoNextConfig> exte
149150
return this.asgardeo.isSignedIn(sessionId as string);
150151
}
151152

153+
override getConfiguration(): T {
154+
return this.asgardeo.getConfigData() as unknown as T;
155+
}
156+
152157
override signIn(
153158
options?: SignInOptions,
154159
sessionId?: string,

packages/nextjs/src/client/contexts/Asgardeo/AsgardeoContext.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,7 @@ import {Context, createContext} from 'react';
2525
/**
2626
* Props interface of {@link AsgardeoContext}
2727
*/
28-
export type AsgardeoContextProps = Partial<AsgardeoReactContextProps> & {
29-
user?: User | null;
30-
isSignedIn?: boolean;
31-
isLoading?: boolean;
32-
signIn?: (payload: EmbeddedSignInFlowHandleRequestPayload, request: EmbeddedFlowExecuteRequestConfig) => Promise<any>;
33-
signOut?: () => Promise<never>;
34-
};
28+
export type AsgardeoContextProps = AsgardeoReactContextProps;
3529

3630
/**
3731
* Context object for managing the Authentication flow builder core context.

packages/nextjs/src/client/contexts/Asgardeo/AsgardeoProvider.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ const AsgardeoClientProvider: FC<PropsWithChildren<AsgardeoClientProviderProps>>
3535
signIn,
3636
signOut,
3737
preferences,
38+
signInUrl,
3839
}: PropsWithChildren<AsgardeoClientProviderProps>) => {
3940
const router = useRouter();
4041
const [isDarkMode, setIsDarkMode] = useState(false);
@@ -127,6 +128,7 @@ const AsgardeoClientProvider: FC<PropsWithChildren<AsgardeoClientProviderProps>>
127128
isLoading,
128129
signIn: handleSignIn,
129130
signOut: handleSignOut,
131+
signInUrl,
130132
}),
131133
[user, isSignedIn, isLoading],
132134
);

packages/nextjs/src/server/AsgardeoProvider.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,16 @@ const AsgardeoServerProvider: FC<PropsWithChildren<AsgardeoServerProviderProps>>
7474
);
7575
}
7676

77+
const configuration = await asgardeoClient.getConfiguration();
78+
console.log('Asgardeo client initialized with configuration:', configuration);
79+
7780
return (
78-
<AsgardeoClientProvider signIn={signInAction} signOut={signOutAction}>
81+
<AsgardeoClientProvider
82+
signIn={signInAction}
83+
signOut={signOutAction}
84+
signInUrl={configuration.signInUrl}
85+
preferences={config.preferences}
86+
>
7987
{children}
8088
</AsgardeoClientProvider>
8189
);

packages/node/src/AsgardeoNodeClient.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import {SignOutOptions} from '@asgardeo/javascript/dist/models/client';
2323
/**
2424
* Base class for implementing Asgardeo in Node.js based applications.
2525
* This class provides the core functionality for managing user authentication and sessions.
26-
*
26+
*getConfigData
2727
* @typeParam T - Configuration type that extends AsgardeoNodeConfig.
2828
*/
2929
abstract class AsgardeoNodeClient<T = AsgardeoNodeConfig> extends AsgardeoJavaScriptClient<T> {}

packages/react/src/AsgardeoReactClient.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,10 @@ class AsgardeoReactClient<T extends AsgardeoReactConfig = AsgardeoReactConfig> e
185185
return this.asgardeo.isSignedIn();
186186
}
187187

188+
override getConfiguration(): T {
189+
return this.asgardeo.getConfigData() as unknown as T;
190+
}
191+
188192
override signIn(
189193
options?: SignInOptions,
190194
sessionId?: string,

0 commit comments

Comments
 (0)