#Yup i do, so can you just show me where
1 messages · Page 1 of 1 (latest)
@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 }