fix signin too relax bug
This commit is contained in:
@ -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)
|
||||
|
Reference in New Issue
Block a user