Можно ли реализовать аутентификацию на основе строки - PullRequest
0 голосов
/ 08 октября 2019

Допустим, у меня действительно простая процедура аутентификации, в которой вам нужно ввести только правильный ключ безопасности. Нет такой вещи как пользовательская таблица. Все, что я хочу проверить, - соответствует ли введенная строка моему ключу безопасности. Будет ли это возможно реализовать с авторизацией laravel? Если да, то как?

1 Ответ

1 голос
/ 08 октября 2019

Если вы не хотите использовать какие-либо постоянные данные, такие как база данных, вы можете использовать сеансы. Переопределите метод входа в LoginController и обработайте ваш чек там.

public function login(Request $request)
{
    if($request->input('security_key') === 'my_secret_string') {
        $request->session()->put('isAuthenticated', true);
        return redirect()->intended('success');
    }

    return back()->withErrors('Invalid secret key');
}

Затем создайте промежуточное программное обеспечение, чтобы проверить, аутентифицирован ли пользователь. Давайте назовем это check_auth:

public function handle($request, Closure $next)
{
    if(!empty(session('isAuthenticated')) && session('isAuthenticated') === true) {
        return $next($request);
    }

    return redirect('/login');
}

И в ваших маршрутах добавьте ваше промежуточное ПО:

Route::group(['middleware' => ['web', 'check_auth']], function () {
    //your routes here
});

И не забудьте добавить новое промежуточное ПО в ваш файл kernel.php:

protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
        'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
        'check_auth' => 'App\Http\Middleware\check_auth' //add this
    ];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...