diff --git a/.changeset/puny-sloths-joke.md b/.changeset/puny-sloths-joke.md
new file mode 100644
index 0000000..48fd640
--- /dev/null
+++ b/.changeset/puny-sloths-joke.md
@@ -0,0 +1,6 @@
+---
+'@tern-secure/backend': patch
+'@tern-secure/nextjs': patch
+---
+
+feat: import retriever user from backend
diff --git a/apps/test/app/layout.tsx b/apps/test/app/layout.tsx
index e95b25f..ce096a7 100644
--- a/apps/test/app/layout.tsx
+++ b/apps/test/app/layout.tsx
@@ -33,14 +33,14 @@ export default async function RootLayout({
}}
//requiresVerification={false}
persistence='browserCookie'
ternUIUrl='http://localhost:4000/ternsecure.browser.js'
diff --git a/apps/test/app/protected/page.tsx b/apps/test/app/protected/page.tsx
index d057fab..13117d8 100644
--- a/apps/test/app/protected/page.tsx
+++ b/apps/test/app/protected/page.tsx
@@ -5,7 +5,7 @@ export const dynamic = 'force-dynamic';
export default async function ProtectedPage() {
const { user, require, redirectToSignIn } = await auth();
- if (!require({ role: 'admin' })) return Access Denied
;
+ if (!require({ role: 'admin' })) return Access Denied now
;
if (!user) return redirectToSignIn();
diff --git a/apps/test/app/protected/protectedClient.tsx b/apps/test/app/protected/protectedClient.tsx
index 7db8de7..f1513c6 100644
--- a/apps/test/app/protected/protectedClient.tsx
+++ b/apps/test/app/protected/protectedClient.tsx
@@ -1,9 +1,12 @@
"use client";
import { useRouter } from "next/navigation";
+import type { TernSecureUser } from "@tern-secure/nextjs";
+
+export type SerializableTernSecureUser = Omit;
interface ProtectedPageClientProps {
- user: any;
+ user: SerializableTernSecureUser;
}
export function ProtectedPageClient({
diff --git a/apps/test/app/user/page.tsx b/apps/test/app/user/page.tsx
deleted file mode 100644
index 40ad9e6..0000000
--- a/apps/test/app/user/page.tsx
+++ /dev/null
@@ -1,23 +0,0 @@
-'use server';
-
-import { createBackendInstanceClient } from '@tern-secure/backend';
-import { headers, cookies } from 'next/headers';
-
-const backendOptions = {
- apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY || '',
- apiUrl: process.env.TERNSECURE_API_URL || '',
- apiVersion: process.env.TERNSECURE_API_VERSION || 'v1',
-};
-
-export default async function UserPage() {
- const headersList = await headers();
- const cookiesList = await cookies();
- const idToken = cookiesList.get('__dev_FIREBASE_[DEFAULT]')?.value;
- const userData = await createBackendInstanceClient(backendOptions).userData.getUserData(
- backendOptions.apiKey,
- { idToken },
- { referer: headersList.get('referer') || undefined },
- );
-
- return userData.data;
-}
diff --git a/packages/backend/src/admin/index.ts b/packages/backend/src/admin/index.ts
index 88f9274..2798817 100644
--- a/packages/backend/src/admin/index.ts
+++ b/packages/backend/src/admin/index.ts
@@ -1,17 +1,17 @@
-export {
- createSessionCookie,
+export {
+ createSessionCookie,
createCustomTokenClaims,
clearSessionCookie
} from './sessionTernSecure'
-export {
- adminTernSecureAuth,
- adminTernSecureDb,
+export {
+ adminTernSecureAuth,
+ adminTernSecureDb,
appCheckAdmin,
- TernSecureTenantManager
+ TernSecureTenantManager
} from '../utils/admin-init'
export { initializeAdminConfig } from '../utils/config'
export { createTenant, createTenantUser } from './tenant'
-export {
+export {
CreateNextSessionCookie,
GetNextServerSessionCookie,
GetNextIdToken,
@@ -24,4 +24,5 @@ export {
export type { SignInAuthObject, RequestState } from '../instance/backendInstance'
export { createBackendInstance, authenticateRequest, signedIn } from '../instance/backendInstance'
-export { RetrieveUser } from './user'
\ No newline at end of file
+export { RetrieveUser } from './user'
+export type { UserRecord } from './user'
\ No newline at end of file
diff --git a/packages/backend/src/admin/user.ts b/packages/backend/src/admin/user.ts
index 31cfa73..9412d59 100644
--- a/packages/backend/src/admin/user.ts
+++ b/packages/backend/src/admin/user.ts
@@ -46,4 +46,7 @@ export function RetrieveUser(tenantId?: string) {
getUserByEmail,
getUserByPhoneNumber,
}
-}
\ No newline at end of file
+}
+
+
+export type { UserRecord }
\ No newline at end of file
diff --git a/packages/nextjs/src/app-router/admin/index.ts b/packages/nextjs/src/app-router/admin/index.ts
index b98d716..5753665 100644
--- a/packages/nextjs/src/app-router/admin/index.ts
+++ b/packages/nextjs/src/app-router/admin/index.ts
@@ -6,7 +6,8 @@ export {
createSessionCookieServer,
createNextSessionCookie,
setNextServerSession,
- setNextServerToken
+ setNextServerToken,
+ RetrieveUser
} from './actions'
export { EndpointRouter } from './endpointRouter'