3
puzzle.when이 페이지를로드 할 때 chrome이 말한 것을 찾을 수 없습니다. localhost 페이지가 작동하지 않고 localhost 페이지가 너무 많이 리디렉션되었습니다. 루프를 만드는 것 같아요. 나는 내가 얻을 수없는 잘못된 일을하고 있을지 모릅니다. 여기 내 코드가 간다.Laravel redirection loop
//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,
],
시스템은 관리자로만 사용자로 처리됩니까? 그렇지 않은 경우 관리자가 아닌 경우 리디렉션 할 사용자 정의 미들웨어를 만들어야합니다. –
거기에 사용자의 3 개 이상의 유형이 있습니다 어떻게 사용자 정의 미들웨어를 만들 @HariHarker –
이 질문의 대답에 언급 된 단계를 수행하십시오 - http://stackoverflow.com/questions/34614753/can-anyone-explain-laravel-5-2- 다중 인증 - 예를 들어 –