我想在用户登录时将其重定向到个人资料页面。但是,它将用户定向到主页('/')页面。有时,如果我以隐身模式打开它,它会起作用。但并非每次都如此。
以下是我的登录控制器
class LoginController extends Controller
{
use AuthenticatesUsers;
protected function redirectTo()
{
return '/profile';
}
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct(Request $request)
{
if($email = $request->user) {
$user = User::where('email', $email)->first();
if($user && $user->auto_login_key == $request->key) {
Auth::loginUsingId($user->id);
} else {
Redirect::to('/login')->send();
}
}
$this->middleware('guest')->except('logout');
}
}
这是我的重定向身份验证的miidleware
class RedirectIfAuthenticated
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $guard
* @return mixed
*/
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect('/profile');
}
return $next($request);
}
}
答案 0 :(得分:0)
您可以在身份验证功能内使用return redirect('/profile');
,例如:
public function __construct(Request $request)
{
if($email = $request->user) {
$user = User::where('email', $email)->first();
if($user && $user->auto_login_key == $request->key) {
Auth::loginUsingId($user->id);
return redirect('/profile');
} else {
Redirect::to('/login')->send();
}
}
$this->middleware('guest')->except('logout');
}
答案 1 :(得分:0)
在任何地方都不要更改任何内容。在您的 LoginController 中,只需将$redirectTo
变量更改为'/profile'
:
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/profile';
在隐身模式下,问题仅在于缓存。您可以通过按 Ctrl + F5
来重新加载(重新加载和清除缓存)答案 2 :(得分:-1)
我了解您的问题,在进行此类更改后,您必须先清除缓存,并确保您的浏览器缓存是清除的。
return redirect('/profile');