사용자가 인증되고 전자 메일이/admin 페이지에 액세스 할 수있는 특정 전자 메일 인 경우에만 사용자 지정 미들웨어를 만들고 싶습니다.사용자 지정 미들웨어 - '너무 많은 리디렉션'- Laravel
.. 나는 내 사용자 지정 경로를 지정한 다음 리디렉션이 항상 너무 많은 리디렉션을 말할 때, 비록
짧은 설명
.- 사용자 로그가>/home으로 리디렉션됩니다. (작동)
- 사용자가/admin에 액세스하려고 시도하고 해당 전자 메일이 미들웨어에 지정된 것과 다르면/home으로 리디렉션합니다.
- 하면 진정한 그들을하자에서/관리자 내 미들웨어는 'admin.verify'
경로 파일이라고
:
Route::get('/admin', '[email protected]')->name('admin.index');
AdminController :
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class AdminController extends Controller
{
public function __construct(){
$this->middleware(['auth', 'admin.verify']);
}
public function index(){
return view('admin.test');
}
}
미들웨어 :
public function handle($request, Closure $next)
{
if (Auth::check() && Auth::User()->email == '[email protected]') {
return $next($request);
} else {
return redirect()->route('home');
}
내 홈 경로 :
GET|HEAD | home | home| App\Http\Controllers\[email protected] | web,auth
홈 컨트롤러 :
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return view('home');
}
}
'홈'경로의 정의를 보여줍니다. – Camilo
미들웨어가 컨트롤러에없는 경로 파일 내에 있어야합니다. – Option
@Option 왜 그런 말을합니까? [컨트롤러에 미들웨어 추가] (https://laravel.com/docs/5.5/controllers#controller-middleware)가 유효합니다. – Camilo