nurularifin's avatar

I Got Message Status Code: 500 Internal Server Error

Please anyone help me, I don't know what's wrong with my code. the funny thing is, even the login successfully I keep getting this message ```Status Code: 500 Internal Server Error``. Can anyone figure out what is wrong with my logic, I think this is something wrong with my typescript code:

ApiService.
            post('sign-in', {
            email: user.email,
            password: user.password
            })
            .then((response) => {
                if (response.data.success) {
                    store.commit(Mutations.SET_AUTH,response);
                    // Save token to localstorage
                    SanctumService.saveToken(response.data.data.token);
                    Swal.fire({
                        text: "You have successfully logged in!",
                        icon: "success",
                        buttonsStyling: false,
                        confirmButtonText: "Ok, got it!",
                        customClass: {
                            confirmButton: "btn fw-semobold btn-light-primary",
                        },
                    }).then(() => {
                        // Go to page after successfully login
                        router.push({ name: "dashboard" });
                    });
                } else {
                    Swal.fire({
                        text: 'Your email or password is wrong!',
                        icon: "error",
                        buttonsStyling: false,
                        confirmButtonText: "Try again!",
                        customClass: {
                            confirmButton: "btn fw-semobold btn-light-danger",
                        },
                    });
                }
            })
            .catch((e) => {
                alert(e);
            });

Here is my API Route:

Route::controller(AuthController::class)->group(function (){
    Route::post('sign-up', 'register');
    Route::post('sign-in', 'login');
});

Here my controller code:

public function login(Request $request)
    {
        if(Auth::attempt(['email' => $request->email, 'password' => $request->password])){
            $authUser           =   Auth::user();
            //$authUser           =   $request->user();
            $success['token']   =   $authUser->createToken('MOKI')->plainTextToken;
            $success['name']    =   $authUser->name;

            $response = [
                'success'   => true,
                'data'      => $success,
                'message'   => 'User login successfully!'
            ];
            return response()->json($response, 200);
        }
        else
        {
            $response = [
                'success' => false,
                'message' => 'Unauthorized'
            ];
            return response()->json($response, 500);
        }
    }

Every time I check the tab Network for Response it always gives me the right one as at my AuthController, For example, if I input the wrong email the response will display like this {"success":false,"message":"Unauthorized"}.

What makes me confuse is, why sign-up work perfectly but not with sign-in, please help, much appreciate it.

0 likes
34 replies
LaryAI's avatar
Level 58

Hmm, it looks like you've got a bit of a conundrum here. It looks like your code is working as expected, but you're still getting a 500 error. I'm no expert, but my guess is that your code is trying to do something that it's not allowed to do. Maybe you should try adding a few lines of code to make sure your code is doing what it's supposed to do. Something like this:

if (response.data.success && response.data.data.token) {
    // Do something
} else {
    throw new Error('You are not allowed to do that!');
}

Good luck!

Hellocode's avatar

HI, You open debug mode and take a picture or maybe you see de debug message can solve that.

nurularifin's avatar

@Hellocode Nothing in the bug mode, I have checked the error in laravel.log and I got the error local.ERROR: Class "App\Models\Authenticatableds" not found but I have to fix it, and after I fix that no error anymore in the laravel.log. In Header browser shows me this status Status Code: 500 Internal Server Error.

nurularifin's avatar

@Hellocode at my console xhr.js:210 POST http://127.0.0.1:8000/api/sign-in 500 (Internal Server Error) dispatchXhrRequest @ xhr.js:210 xhrAdapter @ xhr.js:15 dispatchRequest @ dispatchRequest.js:58 request @ Axios.js:112 Axios.<computed> @ Axios.js:147 wrap @ bind.js:9 post @ ApiService.ts:73 onSubmitLogin @ SignIn.vue:217 (anonymous) @ vee-validate.esm.js:2025 Promise.then (async) submissionHandler @ vee-validate.esm.js:2021 callWithErrorHandling @ runtime-core.esm-bundler.js:157 callWithAsyncErrorHandling @ runtime-core.esm-bundler.js:166 invoker @ runtime-dom.esm-bundler.js:345.

Hellocode's avatar

@nurularifin try that and take a pic or TG contact (I add you)

 post('sign-in', {params :  {email: user.email, password: user.password}})
Hellocode's avatar

@nurularifin I've waited too long for you. If you solve the problem, please write the idea and answer. If you don't solve the problem, please contact me as soon as possible.

ousid's avatar

Nothing in the bug mode, I have checked the error in laravel.log and I got the error local.ERROR: Class "App\Models\Authenticatableds" not found but I have to fix it, and after I fix that no error anymore in the laravel.log. In Header browser shows me this status Status Code: 500 Internal Server Error.

Have you imported the Model namespace? Are you sure that the correct namespace?

  • Check the Model namespace
namespace App\Models; // check the namespace here.

// check the model name
class Authenticatableds extends Model
{
...
}
  • Check the Model name, maybe there's a name mismatch.

The error says that there's an error with your model namespace, or the namespace path, or maybe the Model name.

nurularifin's avatar

@ousid this is my model

namespace App\Models;

use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;

class User extends Authenticatable
{
ousid's avatar

@nurularifin You are using an incorrect model somewhere in your application called Authenticatableds, just make sure you update the model namespace, if you have this model, or replace/rename/delete it, if you don't need it.

1 like
rodrigo.pedra's avatar

Nothing in the bug mode, I have checked the error in laravel.log and I got the error local.ERROR: Class "App\Models\Authenticatableds" not found but I have to fix it, and after I fix that no error anymore in the laravel.log. In Header browser shows me this status Status Code: 500 Internal Server Error.

Can you post the stack trace of this error?

nurularifin's avatar

@rodrigo.pedra this is the last error in laravel.log

[2023-02-26 14:49:43] local.ERROR: Class "App\Models\Authenticatableds" not found {"exception":"[object] (Error(code: 0): Class \"App\Models\Authenticatableds\" not found at D:\PROJECT\vue_laravel_metronic\app\Models\User.php:11)
[stacktrace]
rodrigo.pedra's avatar

@nurularifin thanks.

But what I meant is the full error stack trace. The sequence of numbered lines (#1, #2, ...) just after the string [stacktrace] you pasted above.

nurularifin's avatar

@rodrigo.pedra Ow sorry my false, here it is

#0 D:\PROJECT\vue_laravel_metronic\vendor\composer\ClassLoader.php(571): include()
#1 D:\PROJECT\vue_laravel_metronic\vendor\composer\ClassLoader.php(428): Composer\Autoload\includeFile('D:\\PROJECT\\vue_...')
#2 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Auth\EloquentUserProvider.php(172): Composer\Autoload\ClassLoader->loadClass('App\\Models\\User')
#3 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Auth\EloquentUserProvider.php(159): Illuminate\Auth\EloquentUserProvider->createModel()
#4 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Auth\EloquentUserProvider.php(121): Illuminate\Auth\EloquentUserProvider->newModelQuery()
#5 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Auth\SessionGuard.php(370): Illuminate\Auth\EloquentUserProvider->retrieveByCredentials(Array)
#6 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Auth\AuthManager.php(332): Illuminate\Auth\SessionGuard->attempt(Array)
#7 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php(337): Illuminate\Auth\AuthManager->__call('attempt', Array)
#8 D:\PROJECT\vue_laravel_metronic\app\Http\Controllers\API\AuthController.php(18): Illuminate\Support\Facades\Facade::__callStatic('attempt', Array)
#9 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Routing\Controller.php(54): App\Http\Controllers\API\AuthController->login(Object(Illuminate\Http\Request))
#10 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Routing\ControllerDispatcher.php(45): Illuminate\Routing\Controller->callAction('login', Array)
#11 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Routing\Route.php(268): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\API\AuthController), 'login')
#12 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Routing\Route.php(211): Illuminate\Routing\Route->runController()
#13 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Routing\Router.php(725): Illuminate\Routing\Route->run()
#14 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(141): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#15 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Routing\Middleware\SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#16 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(180): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#17 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Routing\Middleware\ThrottleRequests.php(126): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#18 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Routing\Middleware\ThrottleRequests.php(102): Illuminate\Routing\Middleware\ThrottleRequests->handleRequest(Object(Illuminate\Http\Request), Object(Closure), Array)
#19 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Routing\Middleware\ThrottleRequests.php(54): Illuminate\Routing\Middleware\ThrottleRequests->handleRequestUsingNamedLimiter(Object(Illuminate\Http\Request), Object(Closure), 'api', Object(Closure))
#20 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(180): Illuminate\Routing\Middleware\ThrottleRequests->handle(Object(Illuminate\Http\Request), Object(Closure), 'api')
#21 D:\PROJECT\vue_laravel_metronic\vendor\laravel\sanctum\src\Http\Middleware\EnsureFrontendRequestsAreStateful.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#22 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(141): Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful->Laravel\Sanctum\Http\Middleware\{closure}(Object(Illuminate\Http\Request))
#23 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#24 D:\PROJECT\vue_laravel_metronic\vendor\laravel\sanctum\src\Http\Middleware\EnsureFrontendRequestsAreStateful.php(34): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#25 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(180): Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful->handle(Object(Illuminate\Http\Request), Object(Closure))
#26 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#27 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Routing\Router.php(726): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#28 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Routing\Router.php(703): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#29 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Routing\Router.php(667): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#30 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Routing\Router.php(656): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#31 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(167): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#32 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(141): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#33 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#34 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#35 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(180): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle(Object(Illuminate\Http\Request), Object(Closure))
#36 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#37 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#38 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(180): Illuminate\Foundation\Http\Middleware\TrimStrings->handle(Object(Illuminate\Http\Request), Object(Closure))
#39 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#40 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(180): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#41 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#42 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(180): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle(Object(Illuminate\Http\Request), Object(Closure))
#43 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Http\Middleware\HandleCors.php(62): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#44 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(180): Illuminate\Http\Middleware\HandleCors->handle(Object(Illuminate\Http\Request), Object(Closure))
#45 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Http\Middleware\TrustProxies.php(39): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#46 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(180): Illuminate\Http\Middleware\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))
#47 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#48 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(142): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#49 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(111): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#50 D:\PROJECT\vue_laravel_metronic\public\index.php(52): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#51 D:\PROJECT\vue_laravel_metronic\vendor\laravel\framework\src\Illuminate\Foundation\
esources\server.php(16): require_once('D:\\PROJECT\\vue_...')
#52 {main}
"} 
rodrigo.pedra's avatar

@nurularifin

Can you post your full User.php file?

Are you sure this User class is exactly as you posted in a previous post?

Is there any chance you might have mistyped something there by accident? Sometimes when tabbing through multiple tabs, one can mistype something and don't notice at the moment.

nurularifin's avatar

@rodrigo.pedra Before this error happened my login work well like sign-up, but after I followed this tutorial https://www.itsolutionstuff.com/post/laravel-8-socialite-login-with-google-account-exampleexample.html I got that error.

This is my model User.php:

<?php

namespace App\Models;

use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens, HasFactory, Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var string[]
     */
    protected $fillable = [
        'name',
        'email',
        'password',
        'google_id'
    ];

    /**
     * The attributes that should be hidden for serialization.
     *
     * @var array
     */
    protected $hidden = [
        'password',
        'remember_token',
//        'two_factor_recovery_codes',
//        'two_factor_secret',
    ];

    /**
     * The attributes that should be cast.
     *
     * @var array
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
    ];

    /**
     * The accessors to append to the model's array form.
     *
     * @var array
     */
    protected $appends = [
        'profile_photo_url',
    ];
}

If my Sign-up working well what do u think about this error with my login?

nurularifin's avatar

@rodrigo.pedra When my ```sign-in`` success then redirects to the dashboard but keeps displaying this message on my console

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

If I input the wrong email or password I get this message xhr.js:210 POST http://127.0.0.1:8000/api/sign-in 500 (Internal Server Error)

I have run composer reinstall "*/*" and still doesn't work. I am so confused about this error, i don't know what to do.

rodrigo.pedra's avatar

@nurularifin

I am so sorry, I can't figure out anything else. Everything so far seems ok.

Maybe you have a configuration issue, with Sanctum, or with auth.

Try reviewing Sanctum docs, check if you have covered all steps.

Good luck

psrz's avatar
psrz
Best Answer
Level 10

You seem to be the one making it an internal error (status code 500)

           $response = [
                'success' => false,
                'message' => 'Unauthorized'
            ];
            return response()->json($response, 500);

Change it to 403, maybe 401

           $response = [
                'success' => false,
                'message' => 'Unauthorized'
            ];
            return response()->json($response, 403);
2 likes
nurularifin's avatar

@psrz owh god, I just change to this return response()->json($response); and it's work perfectly. Thank u so much, Sir. This is so simple but I have spent more than 24hrs to fix this. Thank u so much.

1 like

Please or to participate in this conversation.