Пользовательский логин Laravel не удается в первый раз с ошибкой «route [login] notfined».Работает нормально во второй попытке - PullRequest
0 голосов
/ 19 апреля 2019

Я настраиваю свою систему аутентификации в приложении Laravel. Я удалил все контроллеры аутентификации по умолчанию и не использовал make :: auth. И мой аутентификатор работает правильно. Моя главная проблема заключается в том, что при первом входе в систему происходит сбой с ошибкой «Маршрут [вход в систему] не определен», но во второй попытке он работает правильно. И если я повторю процесс, он будет продолжаться снова и снова, как первые две попытки. На самом деле, я нигде не использовал маршрут входа в систему.

Вот моя форма:

<form action="{{ url('/log-in') }}" method="POST">

@csrf

<input type="text" name="phone" placeholder="Telefon" class="form-control input-phone">

<input type="password" name="password" placeholder="Parol" class="form-control">

<button type="submit" class="btn">Kirish</button>

</form>

Вот мой маршрут:

Route::post('/log-in', 'AuthController@login');

Вот мой контроллер:

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Auth;
use App\User;

class AuthController extends Controller
{


    public function login(Request $request) {

        // Get current user.
        $user = User::where('phone', $request->phone)
                       ->first();

        if ( Hash::check($request->password, $user['password']) ) {

            Auth::login($user, true);
            Auth::logoutOtherDevices($request->password);
            return redirect()->back();
        }   
    }

}

Ответы [ 3 ]

0 голосов
/ 19 апреля 2019

Это сложная и раздражающая проблема.вам нужно изменить свой возврат с return redirect()->back(); на загрузку 1 известного блейда или известного перенаправления.Иногда при входе в ваш маршрут не устанавливается обратный редирект.так что вы можете попытаться установить return view() или возврат к известному URL.Так, например, если вход выполнен успешно, вернитесь к индексу, если не загрузите страницу ошибки.

Надеюсь, это поможет

0 голосов
/ 19 апреля 2019

Определить название маршрута:

Route::get('/user_login', 'AuthController@show'); // login view

Route::post('/user_login', 'AuthController@login')->name("user_login");

Как использовать в форме:

<form action="{{ route("user_login") }}" method="POST">

Изменение "App\Http\Middleware\Authenticate.php"

protected function redirectTo($request)
{
    if (! $request->expectsJson()) {
        return route('user_login');
    }
}

изменение функции входа в систему:

return view("your_view"); //return redirect()->back();
0 голосов
/ 19 апреля 2019

Использовать для маршрута.

Route::post('/log-in', 'AuthController@login')->name('login');

Используйте вашу форму.

<form action="{{ route('login') }}" method="POST">

    @csrf

    <input type="text" name="phone" placeholder="Telefon" class="form-control input-phone">

    <input type="password" name="password" placeholder="Parol" class="form-control">

    <button type="submit" class="btn">Kirish</button>

    </form>
...