mirror of
https://github.com/i701/sarlink-portal.git
synced 2025-02-22 17:02:01 +00:00
- Updated signin and signup actions to correctly handle phone number redirection and date of birth formatting. - Introduced a new user-actions file to implement user verification logic. - Added an auth guard to restrict access based on user roles. - Enhanced the auth configuration to include user roles and language settings. - Improved validation schemas for user input in the signup form.
37 lines
908 B
TypeScript
37 lines
908 B
TypeScript
import { sendOtp } from "@/actions/auth-actions";
|
|
import { PrismaClient } from "@prisma/client";
|
|
import { betterAuth } from "better-auth";
|
|
import { prismaAdapter } from "better-auth/adapters/prisma";
|
|
import { phoneNumber } from "better-auth/plugins";
|
|
|
|
const prisma = new PrismaClient();
|
|
export const auth = betterAuth({
|
|
user: {
|
|
additionalFields: {
|
|
role: {
|
|
type: "string",
|
|
required: false,
|
|
defaultValue: "USER",
|
|
input: false, // don't allow user to set role
|
|
},
|
|
lang: {
|
|
type: "string",
|
|
required: false,
|
|
defaultValue: "en",
|
|
},
|
|
},
|
|
},
|
|
database: prismaAdapter(prisma, {
|
|
provider: "sqlite", // or "mysql", "postgresql", ...etc
|
|
}),
|
|
plugins: [
|
|
phoneNumber({
|
|
sendOTP: async ({ phoneNumber, code }) => {
|
|
// Implement sending OTP code via SMS
|
|
console.log("Send OTP in auth.ts", phoneNumber, code);
|
|
await sendOtp(phoneNumber, code);
|
|
},
|
|
}),
|
|
],
|
|
});
|