LARAVEL 8 - 会话过期后重定向到锁定页面

时间:2021-06-08 10:13:13

标签: laravel authentication session redirect

我是 Laravel 的新手,在会话过期后我遇到了 redirect 的问题。 我将 session_lifetime 设置为 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');

提前致谢!

1 个答案:

答案 0 :(得分:0)

感谢回答。 这里有一个 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);
}

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