删除特定路由组的重定向

Posted

技术标签:

【中文标题】删除特定路由组的重定向【英文标题】:Removing redirect for specific route groups 【发布时间】:2019-08-21 00:03:51 【问题描述】:

我希望创建一个路由组,使特定用户无需经过身份验证即可查看我网站上的信息。

目前,我创建了一个名为“public”的路由服务提供商,如下所示:

Route::get('customer/application', function () 
    return view('customerview.customer-application');
);

当我写 'php artisan route:list' 时,路线会出现以下内容:

方法:GET |头 URL:客户/应用程序 中间件:''

我已删除所有中间件以试图绕过身份验证,但没有成功。

将我重定向到登录页面的区域在 App\Exceptions\Handler.php 中:

protected function unauthenticated($request, AuthenticationException $exception)

    if ($request->expectsJson()) 
        return response()->json(['error' => 'Unauthenticated.'], 401);
    
    return redirect()->guest('login');

我也尝试将路线分配给“访客”组,但没有帮助。如何绕过不同组的返回redirect()->guest('login');

【问题讨论】:

你能提供你的路由文件吗?因为如果您不对任何组应用中间件或身份验证检查,未经身份验证的用户将可以看到它,我假设您已将 Auth::routes() 放在路由文件中的任何组之外。 检查你的 RouteServiceProvider.php 可能是你在那里添加中间件。 在定义这条路线之前,您是否打电话给Route::auth() 【参考方案1】:

新手错误 - 我有一条带有 customer/id 的路线,所以我将新路线改为 open/customer/application。

但是对于任何想知道如何在身份验证范围之外创建路由的人?

在 RouteServiceProvider.php 中,我为“公共”路由创建了一个映射,以使我能够创建一个包含所有路由的新文件:

protected function mapPublicRoutes()

    Route::group([
        'namespace' => $this->namespace,
    ], function ($router) 
        require base_path('routes/public.php');
    );

在 routes/public.php 我添加了以下内容:

Route::get('open/customer/application', function () 
    return view('customerview.customer-application');
);

路由::auth();最后仍然在我的 web.php 文件中,没有任何问题/冲突。

我希望我的错误能够教育其他人在打扰 Stackexchage 社区之前检查他们的路由文件:')

【讨论】:

以上是关于删除特定路由组的重定向的主要内容,如果未能解决你的问题,请参考以下文章

angular---路由之重定向路由

React 路由器未在 Chrome 中的重定向上安装组件

反应路由器身份验证重定向

受保护路由中的重定向问题 - Vue js Router

如何使用 React Router 的重定向功能?

VueJS 3 / 路由器 / 带有推送的重定向:未捕获(承诺中)类型错误:无法读取未定义的属性(读取“推送”)