我使用的是Laravel 5.3,想要在登錄後將用戶返回到用戶指定的URL。如何在Laravel中登錄後返回指定的URL?
我使用了很多JavaScript,並且希望在用戶登錄後返回到特定的URL,即不是用戶試圖訪問的URL。URL根據用戶的操作而不同。
例如: /login?r=/come/here/after/login
我這個URL傳遞到登錄界面,但我不能找到一種方法,通過將它傳遞給AUTH控制器重定向後,登錄成功。在App
class PostLoginRedirect
{
public function handle($request, Closure $next, $guard = null)
{
$response = $next($request);
if (\Auth::id() && isset($request->r)) {
// Return the new route redirect.
return redirect($request->r);
}
// Return the custom one in case r? don't exists.
return $response;
}
}
宣佈新的中間件/ HTTP/Kernel.php
protected $routeMiddleware = [
'login-redirect' => \YourNamespace\PostLoginRedirect::class
];
,並加入到:
return redirect() - > intended('your-url');在你的身份驗證功能,或者你只是想重定向到URL將只與登錄URL傳遞? – rahulsm
我只是簡單地將它存儲在會話中......(當然,如果用戶打開了多個選項卡,並且觸發了其中多個選項卡的登錄過程,那麼這可能會導致意外的結果,但這有多可能是真的......) – CBroe