Laravel 5.6 MethodNotAllowedHttpException проверить при входе в систему

У меня проблема с моей проверкой в ​​методе входа в систему.

Действительно, проблема заключается в том, что я пытаюсь подтвердить (с помощью метода validate) свой логин, введя неправильный логин (я хочу видеть сообщения об ошибках), но проблема возникает, когда он пытается перенаправить меня обратно.

вот логин

Посмотреть : Laravel 5.6 MethodNotAllowedHttpException проверить при входе в систему

html:

<div class = "container-fluid">
    <div class = "row justify-content-center">
        <form method = "POST" action = "{{ route('login') }}" aria-label = "{{ __('Login') }}">

            <input type = "hidden" name = "_token" value = "{{csrf_token()}}">
            <div class = "form-group row">
                <label for = "username" class = "col-sm-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
                <div class = "col-md-6">

                    <input id = "username" type = "text" class = "form-control{{ $errors->has('username') ? ' is-invalid' : '' }}" name = "username" value = "{{ old('username') }}" required autofocus>

                    @if ($errors->has('username'))
                            <span class = "invalid-feedback" role = "alert">
                                <strong>{{ $errors->first('username') }}</strong>
                            </span>
                    @endif
                </div>
            </div>
            <div class = "form-group row">
                <label for = "mdp" class = "col-md-4 col-form-label text-md-right">{{ __('mot de passe') }}</label>

                <div class = "col-md-6">
                    <input id = "mdp" type = "password" class = "form-control{{ $errors->has('mdp') ? ' is-invalid' : '' }}" name = "mdp" required>
                    @if ($errors->has('mdp'))
                        <span class = "invalid-feedback" role = "alert">
                                    <strong>{{ $errors->first('mdp') }}</strong>
                        </span>
                    @endif
                </div>
            </div>

            <div class = "form-group row">
                <div class = "col-md-6 offset-md-4">
                    <div class = "form-check">
                        <input class = "form-check-input" type = "checkbox" name = "remember" id = "remember" {{ old('remember') ? 'checked' : '' }}>

                        <label class = "form-check-label" for = "remember">
                            {{ __('se souvenir de moi') }}
                        </label>
                    </div>
                </div>
            </div>

            <div class = "form-group row mb-0">
                <div class = "col-md-8 offset-md-4">
                    <button type = "submit" class = "btn btn-primary">
                        {{ __('Login') }}
                    </button>

                    <a class = "btn btn-link" href = "{{ route('password.request') }}">
                        {{ __('Forgot Your Password?') }}
                    </a>
                </div>
            </div>

        </form>
    </div>
</div>

Ошибка : Laravel 5.6 MethodNotAllowedHttpException проверить при входе в систему

способ входа в систему:

class LoginController extends Controller
    {
    public function login(Request $request){

       $this->validate($request, [
                    $this->username() => 'required|string|email|max:255',
                    'mdp' => 'required|string|min:6',
                ],$message);

            if ($this->hasTooManyLoginAttempts($request)) {
                $this->fireLockoutEvent($request);
                return $this->sendLockoutResponse($request);
            }
            if ($this->attemptLogin($request)) {
                return $this->sendLoginResponse($request);
            }
            $this->incrementLoginAttempts($request);

            return $this->sendFailedLoginResponse($request);
        }
    } 

маршрут:

Route::get('/', PATH_CENTRA_UTILISATEUR.'VerificationController@index')->name('verification_index');
Route::post('/verification',PATH_CENTRA_UTILISATEUR.'VerificationController@verifier')->name('verification_verifier');

Auth::routes();

И список маршрута Laravel 5.6 MethodNotAllowedHttpException проверить при входе в систему

Вы можете мне помочь, спасибо вам всем.

Когда он перенаправит вас обратно, он будет с GET. Определен ли у вас маршрут GET для этого URL-адреса?

Tobias K. 09.08.2018 16:00

Вы включили Auth::routes(); в web.php? И для этого используйте Illuminate \ Foundation \ Auth \ AuthenticatesUsers; у трейта есть то же код, который вы используете в контроллере входа в систему

Rahul 09.08.2018 16:01

@rahulsm Да, я добавил дорогу

diego 09.08.2018 16:04
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
386
1

Ответы 1

Ваш код уже упоминается в Trait.

Пожалуйста, найдите код ниже.

LoginController.php

<?php 
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use App\Http\Repository\RolePermissionRepository;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Session;
use Closure;
use Carbon\Carbon;
use Illuminate\Foundation\Application;
use Symfony\Component\HttpFoundation\Cookie;
use Illuminate\Contracts\Encryption\Encrypter;
use Illuminate\Session\TokenMismatchException;
use Illuminate\Support\Facades\Password;
use App\User;
use DB;
use Illuminate\Validation\ValidationException;
class LoginController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Login Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles authenticating users for the application and
    | redirecting them to your home screen. The controller uses a trait
    | to conveniently provide its functionality to your applications.
    |
    */

    use AuthenticatesUsers;


    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    protected $redirectTo = '/home';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct(Request $chekker)
    {       
        // \Visitor::log();   //log in db visitor ip, geo location, hit counter
        $this->middleware('guest')->except('logout');    
    }
}

Это должно решить вашу проблему.

web.php

Auth::routes();

// please dont add this in any middleware

И проверьте в этом файле vendor / laravel / framework / src / Illuminate / Routing / Router.php. => auth, если указаны все маршруты или нет.

если ничего не работает. Пожалуйста, очистите кеш маршрута и кеш конфигурации. в худшем случае попробуйте перезагрузить компьютер.

РЕДАКТИРОВАТЬ

См. Пример переопределения метода входа в систему.

public function login(Request $request)
    {
        $remember = $request->has('remember');        
        $this->validateLogin($request);

        if ($request->get('user_check') == '' || $request->get('user_check') == null) {
            $checker = user::where("email",$request->email)->first(); 
            if ($checker) {
                //$this->checkInActive($request);
                if (Auth::attempt(['email' => $checker->email, 'password' => $request->get('password'), 'id' => $checker->id] , $remember)) {
                    return redirect('/home');
                } else {
                    return $this->sendFailedLoginResponse($request);
                }    
            } else {
                return $this->sendFailedLoginResponse($request);
            }
        } 
}

Я только что видел файл vendor/laravel/framework/src/Illuminate/Routing/Router.php, там 9 маршрутов, так что все дороги в порядке. Я сделаю ваше переопределение, я дам вам знать, если это сработает. вы можете сказать мне, что в методе validateLogin

diego 09.08.2018 16:21

Другие вопросы по теме