在 AuthController.php
我有一个功能:
public function authenticated( \Illuminate\Http\Request $request, \App\User $user )
{
return redirect()->intended($this->redirectPath());
}
我在每个页面都有登录弹出窗口,因此如果用户从页面登录:/demo-page
并登录,他们将在登录后重定向回同一页面(/demo-page
)。
这绝对符合预期。这里没问题。
<击> 撞击>
我的问题:如何根据用户调用登录的当前路由将用户重定向到特定页面。
逻辑是这样的:
if referring route('indexpage'){
redirect to route('homepage');
}
else any other route other than index page{
return redirect()-> to previous url
}
所以以前我在查看我的AuthController
文件。但我忘了我已经更改了LoginController
重定向
public function __construct()
{
$this->redirectTo = url()->previous(); //Redirect the user to previous page after login
$this->middleware('guest')->except('logout');
}
我需要做什么:
假设有3条路线。 A,B和C
首先,用户登陆 A 页面 如果他在那里登录,他必须被重定向到页面 B 。
如果用户位于 B 页面并且他在那里登录,则必须将其重定向回页面 B 。
如果用户位于 C 页面并且他在那里登录,则必须将其重定向回页面 C 。
注意:登录是每个页面标题上的常用表单。
目前有哪些工作?
return redirect()->intended($this->redirectPath());
这个,
A中的用户重定向到A,
B到B.
和
C至C.
答案 0 :(得分:0)
答案 1 :(得分:-1)
您可以在限制访问自动化用户的页面上执行的操作,使用此代码设置名为accesscheck的URL参数:
$restrictGoTo = "login.php";
if (!((isset($_SESSION['Username'])) &&
(isAuthorized("",$authorizedUsers, $_SESSION['Username'],
$_SESSION['UserGroup'])))) {
$qsChar = "?";
$referrer = $_SERVER['PHP_SELF'];
if (strpos($restrictGoTo, "?")) $qsChar = "&";
if (isset($_SERVER['QUERY_STRING']) && strlen($_SERVER['QUERY_STRING']) >
0)
$referrer .= "?" . $_SERVER['QUERY_STRING'];
$restrictGoTo = $restrictGoTo. $qsChar . "accesscheck=" .
urlencode($referrer);
header("Location: ". $restrictGoTo);
}
然后在您的登录页面上。您需要做的第一件事是检查是否存在url参数accesscheck。它是,登录后重定向到页面,否则,转到指定的页面。
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}
//run your login script and if the user is authenticated proceed to the
previous url or the success page:
$redirectLoginSuccess = "yourpage.php";
if (isset($_SESSION['PrevUrl']) && true) {
$redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
即使你在网址
中使用参数,这也有效