Как получить доступ к нескольким маршрутам для двух промежуточных программ в laravel - PullRequest
0 голосов
/ 22 сентября 2019

Здравствуйте, я застрял на этом, как получить доступ к одному и тому же маршруту по умолчанию аутентификации и TSR.Мой файл auth.php выглядит следующим образом: -

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'token',
        'provider' => 'users',
        'hash' => false,
    ],
    'tsr' => [
        'driver' => 'session',
        'provider' => 'tsrs',
    ],
],

, и это мой файл web.php ниже: -

 //Tsr Routes
 Route::get('/tsr', 'Tsr\TsrController@index')->name('tsrs.dashboard');
 Route::get('/tsr/login', 'Auth\Tsr\LoginController@login')->name('tsrs.auth.login');
 Route::post('tsr/login', 'Auth\Tsr\LoginController@loginAdmin')->name('tsrs.auth.loginAdmin');

Route::group(['middleware' => ['auth', 'auth:tsr'], 'prefix' => 'admin', 'as' => 'admin.'], function () {
 Route::get('/home', 'HomeController@index')
 Route::resource('regular_meetings', 'Admin\RegularMeetingsController');
 Route::post('regular_meetings_mass_destroy', ['uses' => 'Admin\RegularMeetingsController@massDestroy', 'as' => 'regular_meetings.mass_destroy']);
});

Kernel.php ниже: -

protected $routeMiddleware = [
    'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
    'can' => \Illuminate\Auth\Middleware\Authorize::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    'approved' => \App\Http\Middleware\ApproveMiddleware::class,
    'usergate' => \App\Http\Middleware\UserGate::class,
];

Промежуточное программное обеспечение ниже: -

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class RedirectIfAuthenticated
{
/**
 * Handle an incoming request.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  \Closure  $next
 * @param  string|null  $guard
 * @return mixed
 */
public function handle($request, Closure $next, $guard = null)
{
    if (Auth::guard($guard)->check()) {
        return redirect('/admin/home');
    }

    return $next($request);
  }
}

Теперь вы видите, что я добавил три маршрута, которые будут доступны для всех двух промежуточных войн.

Теперь проблема в том, что невозможно войти в систему какДоступ к маршрутам осуществляется как вошедшим в систему пользователям.Если удалить auth: tsr для промежуточного программного обеспечения, он будет работать только для аутентифицированных пользователей.Tsr Login View отличается, а User login View отличается.Пожалуйста, помогите мне, как решить эту проблему.

...