Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Keldarne's avatar

I can't access post route but get route is working

I'm trying to do API login via Route::post()... but I get following error which doesn't really help understand why it doesn't work :

NotFoundHttpException in RouteCollection.php line 161:
in RouteCollection.php line 161
at RouteCollection->match(object(Request)) in Router.php line 533
at Router->findRoute(object(Request)) in Router.php line 512
at Router->dispatchToRoute(object(Request)) in Router.php line 498
at Router->dispatch(object(Request)) in Kernel.php line 174
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) in Pipeline.php line 30
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in TransformsRequest.php line 30
at TransformsRequest->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in TransformsRequest.php line 30
at TransformsRequest->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ValidatePostSize.php line 27
at ValidatePostSize->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 46
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 102
at Pipeline->then(object(Closure)) in Kernel.php line 149
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 116
at Kernel->handle(object(Request)) in index.php line 53

Do you guys have any ideas to help me, I have been trying to make it work since monday. If you need more code or anything to help me just ask and I'll provide it.

0 likes
5 replies
pawelmysior's avatar

You got a NotFoundHttpException, which means that something is wrong with how you're trying to access the route.

  1. What is the url that you're using?
  2. How is your route defined?
Keldarne's avatar
  1. I'm using this url :

api.app/v1/login --> not working (POST) api.app/v1/teams --> working (GET)

You might need to know that I use Homestead-7 to develop

  1. Here is how I defined my route :
Route::group(['prefix' => 'v1'], function () {

    /* Login */
    Route::any('login', 'API\LoginController@logIn')
        ->name('logIn');
});
pawelmysior's avatar

That looks ok. Type php artisan route:list into your terminal and post the result here. Also post the code from LoginController.

Keldarne's avatar

@PawelMysior Here it is : php artisan route:list result :

+--------+--------------------------------+-------------------------------------------------------+-------------------+----------------------------------------------------------------------------+--------------+
| Domain | Method                         | URI                                                   | Name              | Action                                                                     | Middleware   |
+--------+--------------------------------+-------------------------------------------------------+-------------------+----------------------------------------------------------------------------+--------------+
|        | GET|HEAD                       | /                                                     |                   | Closure                                                                    | web          |
|        | GET|HEAD                       | logs                                                  |                   | \Rap2hpoutre\LaravelLogViewer\LogViewerController@index                    | web          |
|        | POST                           | oauth/authorize                                       |                   | \Laravel\Passport\Http\Controllers\ApproveAuthorizationController@approve  | web,auth     |
|        | GET|HEAD                       | oauth/authorize                                       |                   | \Laravel\Passport\Http\Controllers\AuthorizationController@authorize       | web,auth     |
|        | DELETE                         | oauth/authorize                                       |                   | \Laravel\Passport\Http\Controllers\DenyAuthorizationController@deny        | web,auth     |
|        | GET|HEAD                       | oauth/clients                                         |                   | \Laravel\Passport\Http\Controllers\ClientController@forUser                | web,auth     |
|        | POST                           | oauth/clients                                         |                   | \Laravel\Passport\Http\Controllers\ClientController@store                  | web,auth     |
|        | PUT                            | oauth/clients/{client_id}                             |                   | \Laravel\Passport\Http\Controllers\ClientController@update                 | web,auth     |
|        | DELETE                         | oauth/clients/{client_id}                             |                   | \Laravel\Passport\Http\Controllers\ClientController@destroy                | web,auth     |
|        | GET|HEAD                       | oauth/personal-access-tokens                          |                   | \Laravel\Passport\Http\Controllers\PersonalAccessTokenController@forUser   | web,auth     |
|        | POST                           | oauth/personal-access-tokens                          |                   | \Laravel\Passport\Http\Controllers\PersonalAccessTokenController@store     | web,auth     |
|        | DELETE                         | oauth/personal-access-tokens/{token_id}               |                   | \Laravel\Passport\Http\Controllers\PersonalAccessTokenController@destroy   | web,auth     |
|        | GET|HEAD                       | oauth/scopes                                          |                   | \Laravel\Passport\Http\Controllers\ScopeController@all                     | web,auth     |
|        | POST                           | oauth/token                                           |                   | \Laravel\Passport\Http\Controllers\AccessTokenController@issueToken        | throttle     |
|        | POST                           | oauth/token/refresh                                   |                   | \Laravel\Passport\Http\Controllers\TransientTokenController@refresh        | web,auth     |
|        | GET|HEAD                       | oauth/tokens                                          |                   | \Laravel\Passport\Http\Controllers\AuthorizedAccessTokenController@forUser | web,auth     |
|        | DELETE                         | oauth/tokens/{token_id}                               |                   | \Laravel\Passport\Http\Controllers\AuthorizedAccessTokenController@destroy | web,auth     |
|        | GET|HEAD                       | user                                                  |                   | Closure                                                                    | api,auth:api |
|        | GET|HEAD                       | v1/import/projects                                    | importAllProjects | App\Http\Controllers\API\ProjectController@importProjects                  | api          |
|        | GET|HEAD                       | v1/isLogged                                           | isLogged          | App\Http\Controllers\API\LoginController@isLogged                          | api          |
|        | GET|HEAD|POST|PUT|PATCH|DELETE | v1/login                                              | logIn             | App\Http\Controllers\API\LoginController@logIn                             | api          |
|        | GET|HEAD                       | v1/logout                                             | logOut            | App\Http\Controllers\API\LoginController@logOut                            | api          |
|        | GET|HEAD                       | v1/planItem/{username}/{startDate}/{endDate}          | getPlanItems      | App\Http\Controllers\API\IssueController@getPlanItems                      | api          |
|        | GET|HEAD                       | v1/project                                            | getProjects       | App\Http\Controllers\API\ProjectController@getProjects                     | api          |
|        | GET|HEAD                       | v1/sprintUserMaxTime/{username}/{startDate}/{endDate} | sprintUserMaxTime | App\Http\Controllers\API\IssueController@getSprintUserMaxTime              | api          |
|        | GET|HEAD                       | v1/sprints                                            | getSprints        | App\Http\Controllers\API\SprintController@getSprints                       | api          |
|        | GET|HEAD                       | v1/sprints/time/{teamID}                              | getSprintTime     | App\Http\Controllers\API\SprintController@getSprintTime                    | api          |
|        | GET|HEAD                       | v1/sprints/{sprintID}/issues                          | getIssues         | App\Http\Controllers\API\IssueController@getIssues                         | api          |
|        | GET|HEAD                       | v1/teams                                              | getTeams          | App\Http\Controllers\API\TeamController@getTeams                           | api,Closure  |
|        | GET|HEAD                       | v1/teams/{teamID}/users                               | getUsers          | App\Http\Controllers\API\UserController@getUsers                           | api          |
|        | GET|HEAD                       | v1/webhooks                                           | importProject     | App\Http\Controllers\API\ProjectController@importProject                   | api          |
+--------+--------------------------------+-------------------------------------------------------+-------------------+----------------------------------------------------------------------------+--------------+
<?php

namespace App\Http\Controllers\API;

use App\Http\Controllers\Controller;
use App\Http\Services\APIRequestService;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Session;

class LoginController extends Controller
{


    public function __construct()
    {
    }

    public function logIn(Request $request)
    {
        $isSuccess = false;
        $token = '';
        if (Auth::attempt($request->only('username', 'password'), true)) {
            $user = Auth::user();
            if ($user->getRememberToken() != null) {
                $token = $user->getRememberToken();

            } else {
                $token = $user->createToken('accessToken')->accessToken;
                $user->setRememberToken($token);
            }
            session(['user' => $user]);
            $isSuccess = true;

        }
        return '{"login":"' . $isSuccess . '","token":"Bearer ' . $token . '"}';
    }

    public function logOut(Request $request)
    {
        $isSuccess = 0;
        $user = $request->user();
        if (Session::has('user')) {
            Session::forget('user');
            Session::flush();
            $isSuccess = 1;
        }
        dd($user);
        return '{"logout":"' . $user->username . '"}';
    }

    public function isLogged()
    {
        $isSuccess = 0;
        if (isset($_COOKIE['authToken']) && isset($_SESSION['authToken'])) {
            $isSuccess = 1;
        }
        return $isSuccess;
    }

    private
    function getAuthToken($username, $password)
    {
        return 'Basic ' . base64_encode($username . ':' . $password);
    }
}


Keldarne's avatar
Keldarne
OP
Best Answer
Level 1

Problem was that I headers set in api.php file I removed it and setted it in my apache virtualhosts and got it to work

Please or to participate in this conversation.