[英]I want to redirect users when they after login, to profile page
我想在用户登录时将其重定向到个人资料页面。但是,它将用户定向到主页('/')页面。 有时,如果我以隐身模式打开它,它会起作用。 但并非每次都如此。
以下是我的登录控制器
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);
}
}
您可以使用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');
}
在任何地方都不要更改任何内容。 在您的LoginController中 ,只需将$redirectTo
变量更改为'/profile'
:
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/profile';
由于它以隐身方式工作,因此问题仅在于缓存。 您可以通过按Ctrl + F5来重新加载(重新加载和清除缓存)
据我了解您的问题,您必须在进行此类更改后首先清除缓存,并确保浏览器缓存是清除的。
return redirect('/profile');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.