首页 > 解决方案 > LARAVEL 8 - 会话过期后在锁定页面中重定向

问题描述

我是新手,会话过期后Laravel有问题。redirect我设置了session_lifetimeat 120

session过期后如何删除?

现在,120几分钟后,当单击网站内的链接时,它会重定向到login页面,但我尝试使用用户详细信息重定向到锁定屏幕页面。

应用\异常\处理程序

protected function unauthenticated($request, AuthenticationException $exception)
{      
    return $request->expectsJson()
        ? response()->json(['message' => 'Unauthenticated.'], 401)
        : redirect()->guest(route('auth/lockscreen/'.Auth::id()));
}

路线/网络

Route::get('auth/lockscreen/{id}', 'App\Http\Controllers\UserController@lockscreen')
        ->name('auth/lockscreen');

提前致谢!

标签: laravelauthenticationsessionredirect

解决方案


谢谢你的回答。这里有一个web.php (routes/web.php)

Route::middleware(['auth'])->group(function() {
Route::get('/todos', 'App\Http\Controllers\TodoController@index')->name('todos');
Route::get('/todo/create', 'App\Http\Controllers\TodoController@create')->name('todo/create');
Route::get('todo/edit/{id}', 'App\Http\Controllers\TodoController@edit')->name('todo/edit');
Route::post('todo/update/{id}', 'App\Http\Controllers\TodoController@update')->name('todo/update');
Route::post('todo/store', 'App\Http\Controllers\TodoController@store')->name('todo/store');
Route::delete('/todo/delete/{todo}', 'App\Http\Controllers\TodoController@destroy')->name('todo/delete');

Route::get('auth/lockscreen/{id}', 'App\Http\Controllers\UserController@lockscreen')->name('auth/lockscreen');
Route::post('auth/confirm_p/{id}', 'App\Http\Controllers\UserController@confirm_p')->name('auth/confirm_p');

Route::get('/todo/category', 'App\Http\Controllers\TodoCategoryController@index')->name('todo/category');
Route::post('/todo/category/store', 'App\Http\Controllers\TodoCategoryController@store')->name('todo/category/store');
Route::get('/todo/category/create', 'App\Http\Controllers\TodoCategoryController@create')->name('todo/category/create');
Route::get('/todo/category/edit/{id}', 'App\Http\Controllers\TodoCategoryController@edit')->name('todo/category/edit');
Route::delete('/todo/category/delete/{id}', 'App\Http\Controllers\TodoCategoryController@destroy')->name('todo/category/delete');  

});

这里是模型 User.php 中的锁屏方法

public function lockscreen($id) {
    $user = Auth::user();
    return view('auth.lockscreen.'$id)->with('user', $user);
}

我不明白未经身份验证的功能是否提供重定向用户...谢谢


推荐阅读