mirror of https://github.com/buster-so/buster.git
browser client update
This commit is contained in:
parent
48fa337303
commit
a369ba2b32
|
@ -2,7 +2,7 @@ import { isServer } from '@tanstack/react-query';
|
||||||
import type { AxiosRequestHeaders } from 'axios';
|
import type { AxiosRequestHeaders } from 'axios';
|
||||||
import axios, { type AxiosError, type InternalAxiosRequestConfig } from 'axios';
|
import axios, { type AxiosError, type InternalAxiosRequestConfig } from 'axios';
|
||||||
import type { SupabaseContextReturnType } from '@/context/Supabase/SupabaseContextProvider';
|
import type { SupabaseContextReturnType } from '@/context/Supabase/SupabaseContextProvider';
|
||||||
import { BusterRoutes, createBusterRoute } from '@/routes';
|
import { BusterRoutes, createBusterRoute } from '@/routes/busterRoutes';
|
||||||
import { rustErrorHandler } from './buster_rest/errors';
|
import { rustErrorHandler } from './buster_rest/errors';
|
||||||
import { getSupabaseTokenFromCookies } from './createServerInstance';
|
import { getSupabaseTokenFromCookies } from './createServerInstance';
|
||||||
|
|
||||||
|
|
|
@ -9,10 +9,10 @@ import type { UseSupabaseUserContextType } from '@/lib/supabase';
|
||||||
import { timeout } from '@/lib/timeout';
|
import { timeout } from '@/lib/timeout';
|
||||||
import { useBusterNotifications } from '../BusterNotifications';
|
import { useBusterNotifications } from '../BusterNotifications';
|
||||||
import { flushSync } from 'react-dom';
|
import { flushSync } from 'react-dom';
|
||||||
import { createBrowserClient } from '@/lib/supabase/client';
|
import { getBrowserClient } from '@/lib/supabase/client';
|
||||||
|
|
||||||
const PREEMTIVE_REFRESH_MINUTES = 5;
|
const PREEMTIVE_REFRESH_MINUTES = 5;
|
||||||
const supabase = createBrowserClient();
|
const supabase = getBrowserClient();
|
||||||
|
|
||||||
const useSupabaseContextInternal = ({
|
const useSupabaseContextInternal = ({
|
||||||
supabaseContext
|
supabaseContext
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
import { createBrowserClient as createBrowserClientSSR } from '@supabase/ssr';
|
import { createBrowserClient as createBrowserClientSSR } from '@supabase/ssr';
|
||||||
|
|
||||||
export function createBrowserClient() {
|
function createBrowserClient() {
|
||||||
const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL;
|
const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL;
|
||||||
const supabaseAnonKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY;
|
const supabaseAnonKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY;
|
||||||
|
|
||||||
|
@ -12,3 +12,12 @@ export function createBrowserClient() {
|
||||||
|
|
||||||
return createBrowserClientSSR(supabaseUrl, supabaseAnonKey);
|
return createBrowserClientSSR(supabaseUrl, supabaseAnonKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let browserClient: ReturnType<typeof createBrowserClient> | null = null;
|
||||||
|
|
||||||
|
export const getBrowserClient = () => {
|
||||||
|
if (!browserClient) {
|
||||||
|
browserClient = createBrowserClient();
|
||||||
|
}
|
||||||
|
return browserClient;
|
||||||
|
};
|
||||||
|
|
|
@ -31,24 +31,6 @@ export async function updateSession(request: NextRequest) {
|
||||||
);
|
);
|
||||||
|
|
||||||
// Do not run code between createServerClient and
|
// Do not run code between createServerClient and
|
||||||
// supabase.auth.getUser(). A simple mistake could make it very hard to debug
|
|
||||||
// issues with users being randomly logged out.
|
|
||||||
|
|
||||||
// Get the session data first
|
|
||||||
// const { data: sessionData } = await supabase.auth.getSession();
|
|
||||||
|
|
||||||
// // Check if session needs refresh (less than 50 minutes until expiry)
|
|
||||||
// if (sessionData.session?.expires_at) {
|
|
||||||
// const expiresAtTimestamp = sessionData.session.expires_at * 1000; // Convert to ms
|
|
||||||
// const now = Date.now();
|
|
||||||
// const timeUntilExpiry = expiresAtTimestamp - now;
|
|
||||||
// const fiftyMinutesInMs = 50 * 60 * 1000;
|
|
||||||
|
|
||||||
// if (timeUntilExpiry < fiftyMinutesInMs) {
|
|
||||||
// // Refresh the session
|
|
||||||
// await supabase.auth.refreshSession();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// Get the user (this will use the refreshed session if we refreshed it)
|
// Get the user (this will use the refreshed session if we refreshed it)
|
||||||
const {
|
const {
|
||||||
|
|
Loading…
Reference in New Issue