refactor: integrate Better-Auth for authentication and remove Supabase dependencies
This commit is contained in:
@@ -1,27 +1,18 @@
|
||||
import { createMiddleware } from "hono/factory";
|
||||
import { auth } from "@/lib/auth";
|
||||
import type { Session, User } from "@/lib/auth";
|
||||
import { auth } from '@/lib/auth';
|
||||
import type { AppEnv } from '@/types/hono';
|
||||
import { createMiddleware } from 'hono/factory';
|
||||
|
||||
export type AuthEnv = {
|
||||
Variables: {
|
||||
user: User;
|
||||
session: Session;
|
||||
};
|
||||
};
|
||||
|
||||
export const requireAuth = createMiddleware<AuthEnv>(async (c, next) => {
|
||||
export const requireAuth = createMiddleware<AppEnv>(async (c, next) => {
|
||||
const session = await auth.api.getSession({
|
||||
headers: c.req.raw.headers,
|
||||
});
|
||||
|
||||
console.log(session)
|
||||
|
||||
if (!session) {
|
||||
return c.json({ message: "Unauthorized" }, 401);
|
||||
return c.json({ message: 'Unauthorized' }, 401);
|
||||
}
|
||||
|
||||
c.set("user", session.user);
|
||||
c.set("session", session.session);
|
||||
c.set('user', session.user);
|
||||
c.set('session', session.session);
|
||||
|
||||
await next();
|
||||
});
|
||||
|
||||
@@ -11,9 +11,9 @@ function getSuperAdminEmails(): Set<string> {
|
||||
}
|
||||
|
||||
export const requireSuperAdmin: MiddlewareHandler<AppEnv> = async (c, next) => {
|
||||
const authUser = c.get('authUser');
|
||||
const role = typeof authUser.app_metadata?.role === 'string' ? authUser.app_metadata.role : null;
|
||||
const email = authUser.email?.toLowerCase();
|
||||
const user = c.get('user');
|
||||
const role = (user as any).role || 'member';
|
||||
const email = user.email.toLowerCase();
|
||||
|
||||
if (role === 'super_admin') {
|
||||
await next();
|
||||
|
||||
Reference in New Issue
Block a user