Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unhandled Runtime Error SyntaxError: Unexpected end of JSON input from SignIn or SignOut next-auth

I have next an Unhandled Runtime Error SyntaxError: Unexpected end of JSON input when I use SignIn or SignOut with auth credentials.

The error is something weird because show the pop up next error, but register the token and session

Error

This is my authorization code with credentials:

CredentialsProvider({
      id: 'credentials',
      name: 'Credenciales',

      async authorize(credentials, req) {
        if (!(credentials.email.length > 0) || !(credentials.password.length > 0)) {
          throw new Error('Email or password was not provided');
        }
        const formData = new FormData();
        formData.append('username', credentials.email);
        formData.append('password', credentials.password);
        formData.append('client_id', credentials.rif);
        
        const url = `${process.env.BACK_ENDPOINT}/login/`
        
        const response = await fetch(url,{
          method: 'POST',
          body: formData
        });
        if (response.status === 401) {
          return {
            'details': 'error',
            'message': 'The username or password is not valid'
          }
        }
      
        if (response.status === 500) {
          throw new Error('Have been an error');
        }
        const data = await response.json();
        if (response.status > 400 && response.status < 500) {
          console.error(data)
          if (data.detail) {
            throw data.message;
          }
          throw data;
        }
        if(data.details === 'success'){
          return data
        }
        return null
      }
    }),

This is my signIn Callback:

signIn: async({ user, account, profile, email, credentials }) => {  
      // console.log('signIn', {user, account, profile, email, credentials})
      if (account.type === 'credentials'){
        if(user.details === 'success') return true
        if(user.details === 'error') return false
      }
},

And this is my onsubmit handle in frontend:

      const objectValues= {
        email: values.email,
        password: values.password,
        rif: values.rif,
        callbackUrl: '/',
      }
      signIn('credentials', objectValues)
like image 969
Willyo Avatar asked Aug 31 '25 20:08

Willyo


1 Answers

I find the 'error': in callbacks from [...nextauth].js I had the redirect calback without anything there, it always executes with no return:

Callbacks:{
    jwt: ({token, user, account, isNewUser}) =>{
        some code...
    },

    redirect: async ({url, baseUrl}) => { 
        // NOTHING OF CODE
    },

    session: ({session, token}) => {
        some code...
    },

    signIn: async({ user, account, profile, email, credentials }) => {
        some code...
    }  
}

Next time I'm going to give more details about my code and the problem, sorry. Thanks @Bravo for your time.

like image 162
Willyo Avatar answered Sep 03 '25 10:09

Willyo



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!