fix signin too relax bug

This commit is contained in:
Dobromir Popov
2024-05-01 14:38:14 +03:00
parent 11cf6696ff
commit f2fc549265
4 changed files with 93 additions and 65 deletions

View File

@ -20,7 +20,8 @@ import { isLoggedIn, setAuthTokens, clearAuthTokens, getAccessToken, getRefreshT
import { create } from "domain"
console.log("appleID:", process.env.APPLE_APP_ID);
//console.log("appleID:", process.env.APPLE_APP_ID);
// console.log(process.env.EMAIL_SERVER)
// For more information on each option (and a full list of options) go to
// https://next-auth.js.org/configuration/options
@ -170,38 +171,44 @@ export const authOptions: NextAuthOptions = {
console.log("[nextauth] signIn:", account.provider, user.email)
//if (account.provider === 'google' ) {
try {
// Check user in your database and assign roles
const dbUser = await prisma.publisher.findUnique({
where: { email: user.email }
// Check user in your database and assign roles
const dbUser = await prisma.publisher.findUnique({
where: { email: user.email }
});
if (dbUser) {
// Assign roles from your database to the session
user.role = dbUser.role;
user.id = dbUser.id;
//user.permissions = dbUser.permissions;
const session = { ...user };
await prisma.publisher.update({
where: { id: dbUser.id },
data: { lastLogin: new Date() }
});
if (dbUser) {
// Assign roles from your database to the session
user.role = dbUser.role;
user.id = dbUser.id;
//user.permissions = dbUser.permissions;
const session = { ...user };
await prisma.publisher.update({
where: { id: dbUser.id },
data: { lastLogin: new Date() }
});
return true; // Sign-in successful
} else {
// Optionally create a new user in your DB
// Or return false to deny access
//Let's customize the error message to give a better user experience
throw new Error(`Твоят имейл '${user.email}' не е регистриран в системата. Моля свържи се с нас за да те регистрираме ако искаш да ползваш този имейл.`);
}
} catch (e) {
console.log(e);
return true;
} else {
//user nor found in our database. deny access, showing error message. logout and redirect to message page
//throw new Error(`Твоят имейл '${user.email}' не е регистриран в системата. Моля свържи се с нас за да те регистрираме ако искаш да ползваш този имейл.`);
throw new Error(`UserNotFound&email=${encodeURIComponent(user?.email)}`);
}
//}
return true; // Allow other providers or default behavior
},
// async redirect({ url, baseUrl, user }) {
// // Redirect based on the user or error
// console.log("[nextauth] redirect", url, baseUrl, user)
// if (user) {
// return url;
// } else if (url.includes('error=UserNotFound')) {
// // Redirect to a custom error page or display an error
// return `${baseUrl}/error=UserNotFound&mail=${encodeURIComponent(user?.email)}`;
// }
// return baseUrl;
// },
// Persist the OAuth access_token to the token right after signin
async jwt({ token, user, account, profile, isNewUser }) {
//!console.log("[nextauth] JWT", token, user)