Working supabase structure
This commit is contained in:
@@ -0,0 +1,29 @@
|
|||||||
|
"use server";
|
||||||
|
|
||||||
|
import createClient from "@/actions/supa";
|
||||||
|
import getSession from "./get-session";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Request a temporary relay token for a DM node or server.
|
||||||
|
*/
|
||||||
|
export async function authRelay(server_id: string) {
|
||||||
|
const supabase = await createClient();
|
||||||
|
|
||||||
|
const user_id = await getSession();
|
||||||
|
|
||||||
|
if (!user_id) {
|
||||||
|
throw new Error("Invalid user id");
|
||||||
|
}
|
||||||
|
|
||||||
|
const { data: relayToken, error: errorRelay } = await supabase
|
||||||
|
.from("server_auth")
|
||||||
|
.insert({ user_id: user_id, server_id })
|
||||||
|
.select("key")
|
||||||
|
.maybeSingle();
|
||||||
|
|
||||||
|
if (!relayToken || errorRelay) {
|
||||||
|
throw new Error("Failed to create relay token");
|
||||||
|
}
|
||||||
|
|
||||||
|
return relayToken.key as string;
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
import { cookies } from "next/headers";
|
||||||
|
import { createServerClient } from "@supabase/ssr";
|
||||||
|
|
||||||
|
export default async function createClient() {
|
||||||
|
const cookieStore = await cookies();
|
||||||
|
|
||||||
|
return createServerClient(
|
||||||
|
process.env.NEXT_PUBLIC_SUPABASE_URL!,
|
||||||
|
process.env.SUPABASE_SERVICE_ROLE_KEY!,
|
||||||
|
{
|
||||||
|
cookies: {
|
||||||
|
get(name) {
|
||||||
|
return cookieStore.get(name)?.value;
|
||||||
|
},
|
||||||
|
set(name, value) {
|
||||||
|
cookieStore.set(name, value);
|
||||||
|
},
|
||||||
|
remove(name) {
|
||||||
|
cookieStore.delete(name);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user