2016-03-19 16 views
0

admin/someSecureThing adresinden hiçbir şey yapmaya çalıştığımda, / numaralı telefona yeniden yönlendiriliyor. admin/login'a geri yönlendirilmem için nasıl değiştirebilirim?Rotalar, özel konuma yönlendiriliyor

Yolları: senin AuthController.php yılında

Route::group(['namespace' => 'Admin', 'prefix' => 'admin', 'middleware' => 'web'], function() { 

    /* Admin Auth */ 
    Route::get('login', 'Auth\[email protected]'); 
    Route::post('login', 'Auth\[email protected]'); 
    Route::get('register', 'Auth\[email protected]'); 
    Route::post('register', 'Auth\[email protected]'); 
    Route::get('logout', 'Auth\[email protected]'); 


    Route::group(['middleware' => 'auth'], function(){ 
    /*Admin Dashboard Routes */ 

     Route::get('dashboard', '[email protected]');  
    }); 
}); 

cevap

1

ayarlayabileceğiniz: bunlar erişmeye çalışırsanız

protected $loginPath = 'admin/login';

$loginPath kullanıcı sekti nerede değişmeyecek unutmayın korunan rota. Bu App \ Http \ Middleware \ Authenticate middleware'in tanıtıcı yöntemi tarafından kontrol edilir.

public function handle($request, Closure $next, $guard = null) 
    { 
     if (Auth::guard($guard)->guest()) { 
      if ($request->ajax()) { 
       return response('Unauthorized.', 401); 
      } else { 
       return redirect()->guest('admin/login'); 
      } 
     } 

     return $next($request); 
    } 

Özel bir AuthController kullanıyorsanız, özel bir katman oluşturmak daha iyi olabilir.

php artisan make:middleware AdminAuthController

Bu

Ara Katman klasörünün \ app \ Http altında AdminAuthController.php yaratacaktır. biz Kernel.php

\ app \ Http olan yeni ara katman kaydetmeniz gerekir yaptıktan sonra

use Illuminate\Support\Facades\Auth;

:

Sonra yukarıdaki gibi sap fonksiyonunu düzenlemek değil, aynı zamanda emin yapacağız yapmanız gereken bu Sonuçta

protected $routeMiddleware = [ 
     'auth' => \App\Http\Middleware\Authenticate::class, 
     'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 
     'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 
     'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 
     'auth.admin' => \App\Http\Middleware\AdminAuthController::class 
    ]; 

istediğiniz herhangi rotalar için yerine auth ait auth.admin ortakatmanını kullanmaktır.

Kişisel yolları aşağıdaki gibi görünecektir:

Route::group(['namespace' => 'Admin', 'prefix' => 'admin', 'middleware' => 'web'], function() { 

Route::group(['middleware' => 'auth.admin'], function(){ 
    /* Admin Auth */ 
    Route::get('login', 'Auth\[email protected]'); 
    Route::post('login', 'Auth\[email protected]'); 
    Route::get('register', 'Auth\[email protected]'); 
    Route::post('register', 'Auth\[email protected]'); 
    Route::get('logout', 'Auth\[email protected]'); 
    } 

    Route::group(['middleware' => 'auth'], function(){ 
    /*Admin Dashboard Routes */ 

     Route::get('dashboard', '[email protected]');  
    }); 
}); 
+0

benim yetkilendirme denetleyicisi kolu geçersiz kılabilir miyim? –

+0

@JessMcKenzie Hayır yapamazsınız. Giriş kısmı, middleware redirect() -> guest ('admin/login') içinde ele alınır; –

+0

Hmm, özel bir auth denetleyicisi var ve 2x ayrı oturum açma sahip olduğum için başka ne yapabilirim - bir tane/giriş –