Guest User

Untitled

a guest
Oct 25th, 2023
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. export const authOptions: NextAuthOptions = {
  2.     callbacks: {
  3.         async jwt({token, user, account, profile}) {
  4.             // user &&
  5.  
  6.             console.log("user1",user);
  7.             (token = {...token, ...user});
  8.             return token;
  9.         },
  10.         async session({session, token}) {
  11.  
  12.             const user = await db.select().from(users).where(eq(users.email, token.email))
  13.  
  14.             console.log("user2",user)
  15.  
  16.  
  17.             // if (!user ) {
  18.             //     return null;
  19.             // }
  20.  
  21.             return {
  22.                 name: user[0].name,
  23.                 surname: user[0].surname,
  24.                 id: user[0].id,
  25.                 email: user[0].email,
  26.                 delivery: {
  27.                     city: user[0].city,
  28.                     address: user[0].address,
  29.                     postal_code: user[0].postal_code
  30.                 },
  31.             }
  32.         },
  33.     },
  34.  
  35.     pages: {
  36.         //signOut: '/api/auth/signout',
  37.         newUser: "/api/auth/register"
  38.  
  39.     },
  40.     session: {
  41.         jwt: true,
  42.         strategy: "jwt"
  43.     },
  44.     jwt: {
  45.         maxAge: 60 * 60 * 24 * 30 * 6,
  46.     },
  47.     secret: env.NEXTAUTH_SECRET,
  48.  
  49.     adapter: DrizzleAdapter(db, pgTable),
  50.     providers: [
  51.         DiscordProvider({
  52.             clientId: env.DISCORD_CLIENT_ID,
  53.             clientSecret: env.DISCORD_CLIENT_SECRET,
  54.         }),
  55.  
  56.         GoogleProvider({
  57.             clientId: env.GOOGLE_CLIENT_ID,
  58.             clientSecret: env.GOOGLE_CLIENT_SECRET
  59.         }),
  60.         CredentialsProvider({
  61.             name: "credentials",
  62.             authorize: async (credentials, token, session) => {
  63.                 const creds = await signInSchema.parseAsync(credentials);
  64.  
  65.                 const user = await db.select().from(users).where(eq(users.email, creds.email));
  66.  
  67.                 if (!user[0]) {
  68.                     return null;
  69.                 }
  70.  
  71.                 console.log("user: ", user[0])
  72.  
  73.  
  74.  
  75.                 const isValidPassword = await verify(user[0].password!, creds.password);
  76.  
  77.  
  78.                 if (!isValidPassword) {
  79.                     return null;
  80.                 }
  81.  
  82.  
  83.                 return {
  84.                     user: {
  85.                         name: user[0].name,
  86.                         surname: user[0].surname,
  87.                         id: user[0].id,
  88.                         email: user[0].email,
  89.                         isStaff: user[0].isStaff,
  90.  
  91.                         delivery: {
  92.                             city: user[0].city,
  93.                             address: user[0].address,
  94.                             postal_code: user[0].postal_code
  95.                         },
  96.                     }
  97.                 }
  98.  
  99.             },
  100.             type: "credentials"
  101.         }),
  102.  
  103.     ],
  104. };
  105.  
  106. export const getServerAuthSession = () => getServerSession(authOptions);
  107.  
Advertisement
Add Comment
Please, Sign In to add comment