【发布时间】:2018-02-16 20:59:34
【问题描述】:
如果客户端 IP 地址与 IP 地址 192.168.1.154 匹配,我想通过登录页面自动重定向到仪表板页面。但是在我的仪表板页面中,我已经通过 Auth 放置了会话
我在内核中的中间件:
protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'ipcheck' => \App\Http\Middleware\IpMiddleware::class,
];
我的 IpMiddleware 代码:
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class IpMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
// $ip = \Request::ip();
if ($request->ip() == "192.168.1.154") {
return redirect('home');
}
return $next($request);
}
}
我的路线登录:
Route::get('/', ['middleware' => ['ipcheck'], function () {
return view('auth.login');
}]);
我的回家路线:
Route::get('home', function () {
if (Auth::guest()) {
return back()->withInput();
} else (Auth::user()->role_id == 1) {
return view('dashboard');
}
});
我遇到了一个错误:
This webpage has a redirect loop
ERR_TOO_MANY_REDIRECTS
我现在能做什么?
【问题讨论】:
-
我认为看起来像中间件问题
-
看看这个问题可能对你有帮助stackoverflow.com/questions/30125235/…
-
@SagarGautam 我们如何使用return eturn redirect('/home')->with(Auth::user()->role_id=1);
-
@SagarGautam :我认为有问题,因为它在没有身份验证的情况下重定向
-
您想根据用户类型重定向到两个不同的仪表板?
标签: php laravel laravel-5 middleware