Перенаправление маршрута не работает в Laravel - PullRequest
0 голосов
/ 02 мая 2020

После успешного входа в мое приложение Laravel, я перехожу на dashbaord. После выхода из приложения он снова попадает на страницу входа. Но если я щелкну значок назад в браузере, я снова попаду на панель мониторинга, хотя у меня есть log out.

маршрутов

Route::get('/admin-login', 'userController@index');
Route::post('/admin-login', 'userController@admin_login');
Route::get('/admin-logout', 'userController@admin_logout');
Route::get('/dashboard', 'dashboardController@index');

dashboardController. php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class dashboardController extends Controller
{
    public function __construct()
    {
        if (!Auth::check()) {
            return redirect('/admin-login'); //This Redirection Doesn't Work
        }
    }

    public function index()
    {
        return view('admin.dashboard.dashboard');
    }
}

Где проблема, которую я не могу выяснить. Пожалуйста, кто-нибудь поможет? Заранее спасибо.

1 Ответ

0 голосов
/ 02 мая 2020

Вы можете использовать

Перенаправление на именованные маршруты

return redirect()->route('admin-login');

ИЛИ

Перенаправление на действия контроллера

return redirect()->action('yourController@yourMethod');

И убедитесь, что в промежуточном программном обеспечении у вас есть предотвращение возврата.

Создание нового промежуточного программного обеспечения
php ремесленного производителя: промежуточное программное обеспечение PreventBackHistory

после создания промежуточного программного обеспечения PreventBackHistory оно будет в приложении / Http / Middleware / PreventBackHistory. php и добавьте следующий код

public function handle($request, Closure $next){
        $response = $next($request);
        return $response->header('Cache-Control','nocache, no-store, max-age=0, must-revalidate')
            ->header('Pragma','no-cache')
            ->header('Expires','Sun, 02 Jan 1990 00:00:00 GMT');
    }

Зарегистрируйте Middleware

, откройте Kernel. php (app / Http / Kernel. php) и добавьте наш новый промежуточное ПО в массиве переменных $ routeMiddleware.

'prevent-back-history' => \App\Http\Middleware\PreventBackHistory::class,

Использование промежуточного ПО в маршруте

Route::group(['middleware' => 'prevent-back-history'],function(){
        Route::get('/admin-login', 'userController@index');
        Route::post('/admin-login', 'userController@admin_login');
        Route::get('/admin-logout', 'userController@admin_logout');
        Route::get('/dashboard', 'dashboardController@index');
});
...