微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么 Laravel 中间件在 web.php

如何解决为什么 Laravel 中间件在 web.php

在所有路由的 web.PHP 中提交 auth 中间件,甚至我使用 withoutMiddlewarwe() 方法 我制作了另一个中间件,并在 kernel.PHP 中注释了 auth,但新的中间件提交了所有路由。 不知道为什么,我看到RouteServiceProvider文件来了解使用哪个中间件,我看到使用了web中间件。当在 kernel.PHP评论 auth 中间件时,它显示错误登录路由不存在。 我想用谷歌进行社交登录,但对于这个中间件,只是重定向登录路由,我所做的每条路由,即使我使用带有中间件的路由组和该组之外的其他路由,再次重定向登录路由。 我使用 Laravel 8。

请指导我

我的内核.PHP

    <?PHP

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    /**
     * The application's global HTTP middleware stack.
     *
     * These middleware are run during every request to your application.
     *
     * @var array
     */
    protected $middleware = [
        \App\Http\Middleware\TrustProxies::class,\Fruitcake\Cors\HandleCors::class,\App\Http\Middleware\CheckForMaintenanceMode::class,\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,\App\Http\Middleware\Trimstrings::class,\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,];

    /**
     * The application's route middleware groups.
     *
     * @var array
     */
    protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,\Illuminate\Session\Middleware\StartSession::class,//             \Illuminate\Session\Middleware\AuthenticateSession::class,\Illuminate\View\Middleware\ShareErrorsFromSession::class,\App\Http\Middleware\VerifyCsrftoken::class,\Illuminate\Routing\Middleware\SubstituteBindings::class,],'api' => [
            'throttle:60,1',];

    /**
     * The application's route middleware.
     *
     * These middleware may be assigned to groups or used individually.
     *
     * @var array
     */
    protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,//        'auth.login' =>\App\Http\Middleware\Auth::class,'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,'can' => \Illuminate\Auth\Middleware\Authorize::class,'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsverified::class,];
}

和 web.PHP

    <?PHP

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Auth::routes();
Route::get('/logout','SmartAdmin@logout');

// when render first time project redirect
Route::get('/',function () {
    return redirect('login');
});
Route::get('{folder}/{file}','SmartAdmin@index');
Route::get('/home','SmartAdmin@root');
Route::get('/{filename}','SmartAdmin@welcome');

// set auth middleware for specific url
// Route::group(['middleware' => 'auth.login'],function () {
// });

//Route::get('/auth/google','Auth\GoogleController@redirectToGoogle')->name('auth.google');
Route::get('/auth/google',function (){
    return 1;
});
Route::get('/auth/google/callback','Auth\GoogleController@handleGoogleCallback');

Route::get('test',function (){
    return 4444;
})->withoutMiddleware('auth');

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。