首页 > 解决方案 > Laravel,如果用户未通过身份验证,则重定向到特定的登录页面

问题描述

我尝试了所有可能的解决方案来重定向用户,如果由于他们的中间件而没有通过身份验证到不同的登录页面,但是每次需要我去 /register 时,我都会修改中间件文件夹中的 Authenticate.php 以及它自己的中间件,但仍然需要我到/注册。如果他没有登录,我想将用户重定向到特定的登录页面,所以我有编辑器中间件,所以如果有人试图打开链接 /editor/dashboard 并且他没有经过身份验证,我想重定向到 /editorlogin

编辑器中间件:

public function handle($request, Closure $next)
{
if(auth()->user() && (auth()->user()->role_id == 3)) {
  return $next($request);   
 } else {
   return redirect()->intended('editorlogin'); 
  }

路线:

 Route::group(['middleware' => ['auth:web','editor'],'prefix' => 'writer'], function () {

 Route::get('/dashboard', 'Writer\WriterController@index')->name('writer.dashboard');



Route::resource('/store', 'Writer\StoreController');

标签: phplaravel

解决方案


auth:web_auth

web是不同的中间件并且auth是不同的

auth有不同的重定向网址,这就是为什么您得到auth重定向网址而不是您的自定义网址

Route::group(['middleware' => ['web','editor'],'prefix' => 'writer'], function () {


推荐阅读