#Yup i do, so can you just show me where

1 messages · Page 1 of 1 (latest)

ancient kite
#

@obtuse cave hello !

This is my route.ts under /app/api/auth/[...nextauth]

import Cookie from 'js-cookie'
import jwtDecode from 'jwt-decode'
import { JWT } from 'next-auth/jwt'
import NextAuth from 'next-auth/next'
import CredentialsProvider from 'next-auth/providers/credentials'

import api from '@/utils/api/server'
import storage from '@/utils/storage'

const handler = NextAuth({
providers: [
CredentialsProvider({
name: 'Credentials',
credentials: {
email: { label: 'Email', type: 'text', placeholder: 'admin@treeview.app' },
password: { label: 'Password', type: 'password', placeholder: 'test' },
},
async authorize(credentials) {
try {
const user = await api.post(api.AUTH.LOGIN, {
email: credentials?.email,
plainPassword: credentials?.password,
})
return user ?? null
} catch (error: any) {
throw new Error(JSON.stringify({ message: error?.message, status: error?.code }))
}
},
}),
],
session: { strategy: 'jwt' },
callbacks: {
async jwt({ token, user }) {
const jwtToken = user?.token

  if (jwtToken) {
    const newToken = jwtToken ? ((await jwtDecode(jwtToken)) as JWT) : null
    if (jwtToken) {
      Cookie.set(storage.JWT_TOKEN_KEY, user.token)
    }
    return { ...token, ...newToken, token: jwtToken }
  }
  return token
},

async session({ session, token }) {
  session.user = token
  return session
},

},
pages: {
signIn: '/login',
},
})

export { handler as GET, handler as POST }