bugs fixed

This commit is contained in:
daniel31x13 2024-08-19 23:36:28 -04:00
parent 078e5ba95f
commit c072fed99f

View File

@ -1186,10 +1186,42 @@ export default async function auth(req: NextApiRequest, res: NextApiResponse) {
providerAccountId: account?.providerAccountId, providerAccountId: account?.providerAccountId,
}, },
}); });
if (!existingUser && newSsoUsersDisabled) { if (!existingUser && newSsoUsersDisabled) {
return false; return false;
} }
// If user is already registered, link the provider
if (user.email && account) {
const findUser = await prisma.user.findFirst({
where: {
email: user.email,
},
include: {
accounts: true,
},
});
if (findUser && findUser.accounts.length === 0) {
await prisma.account.create({
data: {
userId: findUser.id,
type: account.type,
provider: account.provider,
providerAccountId: account.providerAccountId,
id_token: account.id_token,
access_token: account.access_token,
refresh_token: account.refresh_token,
expires_at: account.expires_at,
token_type: account.token_type,
scope: account.scope,
session_state: account.session_state,
},
});
}
}
} }
return true; return true;
}, },
async jwt({ token, trigger, user }) { async jwt({ token, trigger, user }) {
@ -1198,13 +1230,28 @@ export default async function auth(req: NextApiRequest, res: NextApiResponse) {
token.id = user?.id as number; token.id = user?.id as number;
if (trigger === "signUp") { if (trigger === "signUp") {
const checkIfUserExists = await prisma.user.findUnique({ const userExists = await prisma.user.findUnique({
where: { where: {
id: token.id, id: token.id,
}, },
include: {
accounts: true,
},
}); });
if (checkIfUserExists && !checkIfUserExists.username) { // Verify SSO user email
if (userExists && userExists.accounts.length > 0) {
await prisma.user.update({
where: {
id: userExists.id,
},
data: {
emailVerified: new Date(),
},
});
}
if (userExists && !userExists.username) {
const autoGeneratedUsername = const autoGeneratedUsername =
"user" + Math.round(Math.random() * 1000000000); "user" + Math.round(Math.random() * 1000000000);
@ -1240,6 +1287,8 @@ export default async function auth(req: NextApiRequest, res: NextApiResponse) {
async session({ session, token }) { async session({ session, token }) {
session.user.id = token.id; session.user.id = token.id;
console.log("session", session);
if (STRIPE_SECRET_KEY) { if (STRIPE_SECRET_KEY) {
const user = await prisma.user.findUnique({ const user = await prisma.user.findUnique({
where: { where: {
@ -1251,6 +1300,7 @@ export default async function auth(req: NextApiRequest, res: NextApiResponse) {
}); });
if (user) { if (user) {
//
const subscribedUser = await verifySubscription(user); const subscribedUser = await verifySubscription(user);
} }
} }