php - How To Properly Setup Multiple Authentication Token using JWT Laravel

I have module where I need to setup multiple authentication api login for user account and admin account. I used laravel as my backend and JWT for my token. after all I setting up all requirements, I have encounter error after I tried to access the login api of admin in the postman just see the attached image on the below. http://localhost:8000/admin/v1/login it says that NotFoundHttpExpception. same thing accessing the login api of user http://localhost:8000/user/v1/login

"exception": "Symfony\Component\HttpKernel\Exception\NotFoundHttpException",

Whole Image Error Postman:

Error Postman

Here is the setup I made:

Auth.php

    <?php

return [

    /*
    |

Api.php

    {-code-2}

Answer

Answer

Answer

Answer

Answer

Answer

Answer

---- | Authentication Defaults |

Answer

Answer

Answer

Answer

Answer

Answer

Answer

---- | | This option controls the default authentication "guard" and password | reset options for your application. You may change these defaults | as required, but they're a perfect start for most applications. | */ 'defaults' => [ 'guard' => 'api', 'passwords' => 'users', ], /* |

Answer

Answer

Answer

Answer

Answer

Answer

Answer

---- | Authentication Guards |

Answer

Answer

Answer

Answer

Answer

Answer

Answer

---- | | Next, you may define every authentication guard for your application. | Of course, a great default configuration has been defined for you | here which uses session storage and the Eloquent user provider. | | All authentication drivers have a user provider. This defines how the | users are actually retrieved out of your database or other storage | mechanisms used by this application to persist your user's data. | | Supported: "session", "token" | */ 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'user' => [ 'driver' => 'jwt', 'provider' => 'users', 'hash' => false, ], 'admin' => [ 'driver' => 'jwt', 'provider' => 'admins', 'hash' => false, ], ], /* |

Answer

Answer

Answer

Answer

Answer

Answer

Answer

---- | User Providers |

Answer

Answer

Answer

Answer

Answer

Answer

Answer

---- | | All authentication drivers have a user provider. This defines how the | users are actually retrieved out of your database or other storage | mechanisms used by this application to persist your user's data. | | If you have multiple user tables or models you may configure multiple | sources which represent each model / table. These sources may then | be assigned to any extra authentication guards you have defined. | | Supported: "database", "eloquent" | */ 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\Models\User::class, ], 'admins' => [ 'driver' => 'eloquent', 'model' => App\Models\Admin::class, ], // 'users' => [ // 'driver' => 'database', // 'table' => 'users', // ], ], /* |

Answer

Answer

Answer

Answer

Answer

Answer

Answer

---- | Resetting Passwords |

Answer

Answer

Answer

Answer

Answer

Answer

Answer

---- | | You may specify multiple password reset configurations if you have more | than one user table or model in the application and you want to have | separate password reset settings based on the specific user types. | | The expire time is the number of minutes that the reset token should be | considered valid. This security feature keeps tokens short-lived so | they have less time to be guessed. You may change this as needed. | */ 'passwords' => [ 'users' => [ 'provider' => 'users', 'table' => 'password_resets', 'expire' => 60, 'throttle' => 60, ], 'admins' => [ 'provider' => 'admins', 'table' => 'password_resets', 'expire' => 60, 'throttle' => 60, ], ], /* |

Answer

Answer

Answer

Answer

Answer

Answer

Answer

---- | Password Confirmation Timeout |

Answer

Answer

Answer

Answer

Answer

Answer

Answer

---- | | Here you may define the amount of seconds before a password confirmation | times out and the user is prompted to re-enter their password via the | confirmation screen. By default, the timeout lasts for three hours. | */ 'password_timeout' => 10800, ];|||<?php use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; Route::group([ 'prefix' => 'v1' ], function () { Route::post('login','App\Http\Controllers\AdminAuthController@login'); Route::post('logout', 'App\Http\Controllers\AdminAuthController@logout'); Route::post('refresh', 'App\Http\Controllers\AdminAuthController@refresh'); Route::post('me', 'App\Http\Controllers\AdminAuthController@me'); }); Route::group([ 'prefix' => 'v1' ], function () { Route::post('login','App\Http\Controllers\AuthController@login'); Route::post('logout', 'App\Http\Controllers\AuthController@logout'); Route::post('refresh', 'App\Http\Controllers\AuthController@refresh'); Route::post('me', 'App\Http\Controllers\AuthController@me'); });

Source