Skip to content

Commit f7d6d37

Browse files
author
Karan Kajla
committed
Add support for 'feature_flags' claim
1 parent 5920dae commit f7d6d37

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

src/provider.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,15 @@ export function AuthKitProvider(props: AuthKitProviderProps) {
3636
const handleRefresh = React.useCallback(
3737
(response: OnRefreshResponse) => {
3838
const { user, accessToken, organizationId } = response;
39-
const { role = null, permissions = [] } = getClaims(accessToken);
39+
const { role = null, permissions = [], feature_flags = [] } = getClaims(accessToken);
4040
setState((prev) => {
4141
const next = {
4242
...prev,
4343
user,
4444
organizationId: organizationId ?? null,
4545
role,
4646
permissions,
47+
featureFlags: feature_flags,
4748
};
4849
return isEquivalentWorkOSSession(prev, next) ? prev : next;
4950
});
@@ -106,7 +107,10 @@ function isEquivalentWorkOSSession(
106107
a.user?.updatedAt === b.user?.updatedAt &&
107108
a.organizationId === b.organizationId &&
108109
a.role === b.role &&
109-
a.permissions.every((perm, i) => perm === b.permissions[i])
110+
a.permissions.length === b.permissions.length &&
111+
a.permissions.every((perm, i) => perm === b.permissions[i]) &&
112+
a.featureFlags.length === b.featureFlags.length &&
113+
a.featureFlags.every((flag, i) => flag === b.featureFlags[i])
110114
);
111115
}
112116

src/state.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export interface State {
66
role: string | null;
77
organizationId: string | null;
88
permissions: string[];
9+
featureFlags: string[];
910
}
1011

1112
export const initialState: State = {
@@ -14,4 +15,5 @@ export const initialState: State = {
1415
role: null,
1516
organizationId: null,
1617
permissions: [],
18+
featureFlags: [],
1719
};

0 commit comments

Comments
 (0)