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)
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With