tymondesigns/jwt-auth

The GET method is not supported for route api/login. Supported methods: POST.

oussama1478 opened this issue · 0 comments

Subject of the issue

I am trying to get a response in https://api.oussama-dev.online/api/login and I have the error
Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
The GET method is not supported for route api/login. Supported methods: POST.

The login method works fine on localhost, but when i deployed it doesn't work.

Your environment

Q A
Bug? yes
Framework Laravel

AuthController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests\SignupRequest;
use App\Http\Requests\LoginRequest;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Http;

class AuthController extends Controller
{
    public function signup(SignupRequest $request){

//get all the request validated data
        $data=$request->validated();
        $response = Http::asForm()->post('https://www.google.com/recaptcha/api/siteverify', [
            'secret' => env("RECAPTCHA_SECRET_KEY"),
            'response' => $request->input('recaptcha_response'),
            'remoteip' => $request->ip(),
        ]);

    if( $response['success'] == true ){
        $user=User::create([
            'name'=>$data['name'],
            'email'=>$data['email'],
            'password'=>bcrypt($data['password']),
            
        ]);
        //when a token is created we take the text of it
        $token=$user->createToken('main')->plainTextToken;

        return response([
            'user'=>$user,
            'token'=>$token
        ]);}

    }
    public function login(LoginRequest $request){
$credentials=$request->validated();
$remember = $credentials['remember'] ?? false;
unset($credentials['remember']);

if (!Auth::attempt($credentials, $remember)) {
    return response([
        'error' => 'mot de passe incorrect'
    ], 422);
}
$user = Auth::user();
$token = $user->createToken('main')->plainTextToken;

return response([
    'user' => $user,
    'token' => $token,
    'user_type' => $user->usertype,
    
]);



    }
    public function logout(Request $request){
         /** @var User $user */
         $user = Auth::user();
         // Revoke the token that was used to authenticate the current request...
         $user->currentAccessToken()->delete();
        
         return response([
             'success' => true
         ]);

    }
}

in route api.php

Route::post('/login',[AuthController::class,'login']);