[英]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.