Laravel重定向循环

问题描述:

我无法找到我的拼图。当我加载页面时,铬显示:本地主机页面不工作,本地主机重定向您太​​多次了。我想这是创建一个循环。我可能做错了我无法得到的东西。这里是我的代码。Laravel重定向循环

//route 
Route::get('admin/login', 'Auth\[email protected]'); 
    Route::post('admin/login', 'Auth\[email protected]'); 
    Route::get('admin/logout', 'Auth\[email protected]'); 

    Route::group(['middleware' => 'auth'], function() { 
     Route::Auth(); 
     Route::get('/admin', 'admin\[email protected]'); 
    }); 


    Route::get('/', 'guest\[email protected]');//access all 

AuthController

<?php 

namespace App\Http\Controllers\Auth; 

use App\Models\Admin; 
use App\User; 
use Validator; 
use App\Http\Controllers\Controller; 
use Illuminate\Foundation\Auth\ThrottlesLogins; 
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers; 
use Illuminate\Http\Request; 
use Illuminate\Contracts\Auth\Guard; 
use Illuminate\Contracts\Auth\Registrar; 
use Illuminate\Support\Facades\Auth; 
use Illuminate\Support\Facades\File; 
use Illuminate\Support\Facades\Storage; 
use Illuminate\Http\Response; 

class AuthController extends Controller 
{ 
    use AuthenticatesAndRegistersUsers, ThrottlesLogins; 
    protected $redirectTo = '/admin'; 

    public function __construct() { 

     $this->middleware($this->guestMiddleware(), ['except' => 'logout']); 
    } 

    protected function postLogin(Request $request){ 
     $email = $request['email']; 
     $pass = $request['password'];//Hash::make(Input::get('password')); 
     $user = Admin::where(['email' => $email])->first(); 
     if($user && $user->password == $pass) { 
      Auth::login($user); 
      dd(Auth::user()->toArray()); 
      return redirect()->intended('/admin'); 
     } 
     else { 
      $error = "Invalid username or password"; 
      return view("admin/login")->with("error", $error); 
     } 
    } 
    protected function getLogout() { 
     Auth::logout(); 
     return redirect()->intended('admin/login'); 
    } 
} 

模型

<?php 
namespace App\Models; 

use Illuminate\Database\Eloquent\Model; 
use Illuminate\Contracts\Auth\Authenticatable; 


class Admin extends Model implements Authenticatable 
{ 

    use \Illuminate\Auth\Authenticatable; 
    protected $table = 'admins'; 
    public $timestamps = false; 
    public $remember_token = null; 

} 

Authenticate.php

<?php 
namespace App\Http\Middleware; 

use Closure; 
use Illuminate\Support\Facades\Auth; 
class Authenticate 
{ 

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

配置/ auth.php

//---------------before------------------- 
    'providers' => [ 
     'users' => [ 
      'driver' => 'eloquent', 
      'model' => App\User::class, 
     ], 
//----------------after editing-------------------------- 
'providers' => [ 
    'users' => [ 
     'driver' => 'eloquent', 
     'model' => App\Models\Admin::class, 
    ], 
+1

您的系统是否仅以用户身份处理管理员?如果没有,你将不得不创建一个自定义中间件来重定向,如果不是管理员。 –

+0

有3个或更多类型的用户我如何创建自定义中间件@HariHarker –

+0

请按照此问题的答案中提到的步骤 - http://*.com/questions/34614753/can-anyone-explain-laravel-5-2-多AUTH与 - 例如 –

您的Auth路由不应该应用auth中间件。因此:

Route::Auth();  

Route::group(['middleware' => 'auth'], function() { 
    Route::get('/admin', 'admin\[email protected]'); 
});