Php 拉威尔重定向循环
我找不到我的谜题。当我加载页面时,chrome会说:localhost页面不工作,localhost重定向了你太多次。我猜这是在创造一个循环。我可能做错了一些我无法得到的事情。这是我的密码Php 拉威尔重定向循环,php,laravel,laravel-5.2,Php,Laravel,Laravel 5.2,我找不到我的谜题。当我加载页面时,chrome会说:localhost页面不工作,localhost重定向了你太多次。我猜这是在创造一个循环。我可能做错了一些我无法得到的事情。这是我的密码 //route Route::get('admin/login', 'Auth\AuthController@getlogin'); Route::post('admin/login', 'Auth\AuthController@postLogin'); Route::get('adm
//route
Route::get('admin/login', 'Auth\AuthController@getlogin');
Route::post('admin/login', 'Auth\AuthController@postLogin');
Route::get('admin/logout', 'Auth\AuthController@getLogout');
Route::group(['middleware' => 'auth'], function () {
Route::Auth();
Route::get('/admin', 'admin\HomeController@index');
});
Route::get('/', 'guest\HomeController@index');//access all
授权控制器
<?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');
}
}
您的身份验证路由不应应用身份验证中间件。因此:
Route::Auth();
Route::group(['middleware' => 'auth'], function () {
Route::get('/admin', 'admin\HomeController@index');
});
您的系统是否只处理作为用户的管理员?如果没有,您将必须创建一个自定义中间件来重定向,如果没有admin。有3种或更多类型的用户我如何创建自定义中间件@HariHarker请遵循此问题答案中提到的步骤-
<?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);
}
}
//---------------before-------------------
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
//----------------after editing--------------------------
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\Admin::class,
],
Route::Auth();
Route::group(['middleware' => 'auth'], function () {
Route::get('/admin', 'admin\HomeController@index');
});