|
@@ -450,8 +450,12 @@ class LoginController extends AbstractController
|
|
|
{
|
|
|
|
|
|
$reqData = $this->request->all();
|
|
|
+
|
|
|
+
|
|
|
+ $cookieList = $this->request->getCookieParams();
|
|
|
|
|
|
- $adminToken = !empty($_COOKIE['Admin-Token']) ? $this->sanitizeInput($_COOKIE['Admin-Token']) : '';
|
|
|
+ $adminToken = !empty($cookieList['Admin-Token']) ? $this->sanitizeInput($cookieList['Admin-Token']) : '';
|
|
|
+
|
|
|
$ticket = !empty($reqData['ticket']) ? $this->sanitizeInput($reqData['ticket']) : '';
|
|
|
$backurl = $this->sanitizeBackUrl($reqData['backurl'] ?? $_SERVER['HTTP_REFERER'] ?? '');
|
|
|
|
|
@@ -460,36 +464,28 @@ class LoginController extends AbstractController
|
|
|
if (empty($theHost)) {
|
|
|
return Result::error('系统配置错误:THE_HOST 未定义');
|
|
|
}
|
|
|
-
|
|
|
|
|
|
if (!empty($adminToken)) {
|
|
|
- try {
|
|
|
- $redis = $this->container->get(\Hyperf\Redis\Redis::class);
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+ $redis = $this->container->get(\Hyperf\Redis\Redis::class);
|
|
|
+ if(!empty($ticket)){
|
|
|
if (!empty($ticket) && $redis->exists('ticket:' . $ticket)) {
|
|
|
- $this->redirectWithTicket($backurl, $ticket, $adminToken);
|
|
|
-
|
|
|
+
|
|
|
+ $backurl = rtrim($backurl, '/');
|
|
|
+ return $this->response->redirect($this->fun_http($backurl . '?ticket=' . $ticket . '&admintoken=' . urlencode($adminToken)), 302);
|
|
|
+
|
|
|
+ }else{
|
|
|
+ return $this->response->redirect($this-> fun_http('http://'.$theHost.'/#/login?backurl='.urlencode($backurl)), 302);
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- if (empty($ticket)) {
|
|
|
- $ticket = md5($adminToken);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- $this->redirectWithTicket($backurl, $ticket, $adminToken);
|
|
|
-
|
|
|
- } catch (\Throwable $e) {
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- return Result::error('系统错误:Redis 操作失败');
|
|
|
+
|
|
|
+ }else{
|
|
|
+ $ticket = md5($adminToken);
|
|
|
}
|
|
|
+ return $this->response->redirect(fun_http($backurl . '?ticket=' . $ticket . '&admintoken=' . urlencode($adminToken)), 302);
|
|
|
+
|
|
|
+ }else{
|
|
|
+ return $this->response->redirect(fun_http('http://'.$theHost.'/#/login?backurl='.urlencode($backurl)), 302);
|
|
|
}
|
|
|
-
|
|
|
- $loginUrl = 'http://' . $theHost . '/#/login?backurl=' . urlencode($backurl);
|
|
|
- return $this->response->redirect($loginUrl, 302);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -524,6 +520,9 @@ class LoginController extends AbstractController
|
|
|
{
|
|
|
$backurl = rtrim($backurl, '/');
|
|
|
$redirectUrl = $this->fun_http($backurl . '?ticket=' . $ticket . '&admintoken=' . urlencode($adminToken));
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
return $this->response->redirect($redirectUrl, 302);
|
|
|
}
|
|
|
|