refactor(login): 重构登录页面并优化账号绑定逻辑
- 调整页面布局,使内容居中显示 - 移除不必要的键盘事件监听代码 - 抽离 handleBind 和 processLogin 函数,提高代码复用性 - 修改按钮点击事件处理方式,使用 onclick 属性
This commit is contained in:
		
							
								
								
									
										72
									
								
								linuxdo.php
									
									
									
									
									
								
							
							
						
						
									
										72
									
								
								linuxdo.php
									
									
									
									
									
								
							| @@ -162,55 +162,47 @@ function get_curl($url, $post = 0, $referer = 0, $cookie = 0, $header = 0, $ua = | |||||||
|     <meta name="keywords" content="<?= $_CONFIG['game_name'] ?>,<?= $_CONFIG['game_description'] ?>"> |     <meta name="keywords" content="<?= $_CONFIG['game_name'] ?>,<?= $_CONFIG['game_description'] ?>"> | ||||||
|  |  | ||||||
|     <link rel="stylesheet" href="static/css/login.css?v=1.1.6" /> |     <link rel="stylesheet" href="static/css/login.css?v=1.1.6" /> | ||||||
|  |  | ||||||
|     <script> |     <script> | ||||||
|         document.onkeydown = document.onkeyup = document.onkeypress = function (event) { |         function handleBind(account, linuxdo_account) { | ||||||
|             var e = event || window.event || arguments.callee.caller.arguments[0]; |             return fetch("/linuxdo?act=bind&account=" + account + "&connect_id=" + linuxdo_account).then(res => { | ||||||
|             if (e && e.keyCode == 123) { |                 const { password } = res.data | ||||||
|                 e.returnValue = false; |                 location.href = "/play?account=" + document.getElementById("linuxdo").value + "&token=" + password; | ||||||
|                 return false; |             }) | ||||||
|             } |  | ||||||
|         } |         } | ||||||
|  |         function processLogin(params = {}, connect_id) { | ||||||
|  |             const formData = new FormData(); | ||||||
|  |             formData.append("serverId", "1"); | ||||||
|  |             Object.entries(params).forEach(([key, value]) => formData.append(key, value)); | ||||||
|  |             fetch("/api?act=reg", { method: "POST", body: formData }).then(res => { | ||||||
|  |                 if (res.code == '0') { | ||||||
|  |                     handleBind(res.data.account, connect_id) | ||||||
|  |                 } else { | ||||||
|  |                     showTips(res.msg, 6, 'error'); | ||||||
|  |                     return | ||||||
|  |                 }) | ||||||
|  |         }) | ||||||
|  |                             } | ||||||
|  |         function registerDirect() { | ||||||
|  |             const linuxdo_account = document.getElementById("linuxdo").value; | ||||||
|  |             processLogin({ type: "1", account: linuxdo_account, password: "1", password2: "1" }, linuxdo_account) | ||||||
|  |         } | ||||||
|  |         function linkAccount() { | ||||||
|  |             const account = document.getElementById("account").value; | ||||||
|  |             const password = document.getElementById("password").value; | ||||||
|  |             const linuxdo_account = document.getElementById("linuxdo").value; | ||||||
|  |             processLogin({ type: "0", account, password, }, linuxdo_account) | ||||||
|  |         } | ||||||
|  |  | ||||||
|     </script> |     </script> | ||||||
| </head> | </head> | ||||||
|  |  | ||||||
| <body oncontextmenu="return false" onselectstart="return false" ondragstart="return false"> | <body oncontextmenu="return false" onselectstart="return false" ondragstart="return false"> | ||||||
|     <?php if (empty($row)) { ?> |     <?php if (empty($row)) { ?> | ||||||
|         <div style="width:400px"> |         <div style="width:400px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;justify-content:center;align-items:center;flex-direction:column;"> | ||||||
|             当前尚未有你的游戏账号,请选择<br> |             当前尚未有你的游戏账号,请选择<br> | ||||||
|             <a onclick="registerDirect" style="cursor:pointer"><b>Linuxdo账号绑定</b></a></br> |             <a onclick="registerDirect" style="cursor:pointer"><b>Linuxdo账号绑定</b></a></br> | ||||||
|             <input type="hidden" id="linuxdo" value="<?= $userInfo['user_username'] ?>"> |             <input type="hidden" id="linuxdo" value="<?= $userInfo['user_username'] ?>"> | ||||||
|             <script> |  | ||||||
|                 function handleBind(account, linuxdo_account) { |  | ||||||
|                     return fetch("/linuxdo?act=bind&account=" + account + "&connect_id=" + linuxdo_account).then(res => { |  | ||||||
|                         const { password } = res.data |  | ||||||
|                         location.href = "/play?account=" + document.getElementById("linuxdo").value + "&token=" + password; |  | ||||||
|                     }) |  | ||||||
|                 } |  | ||||||
|                 function processLogin(params = {}, connect_id) { |  | ||||||
|                     const formData = new FormData(); |  | ||||||
|                     formData.append("serverId", "1"); |  | ||||||
|                     Object.entries(params).forEach(([key, value]) => formData.append(key, value)); |  | ||||||
|                     fetch("/api?act=reg", { method: "POST", body: formData }).then(res => { |  | ||||||
|                         if (res.code == '0') { |  | ||||||
|                             handleBind(res.data.account, connect_id) |  | ||||||
|                         } else { |  | ||||||
|                             showTips(res.msg, 6, 'error'); |  | ||||||
|                             return |  | ||||||
|                         }) |  | ||||||
|                 }) |  | ||||||
|                             } |  | ||||||
|                 function registerDirect() { |  | ||||||
|                     const linuxdo_account = document.getElementById("linuxdo").value; |  | ||||||
|                     processLogin({ type: "1", account: linuxdo_account, password: "1", password2: "1" }, linuxdo_account) |  | ||||||
|                 } |  | ||||||
|                 function linkAccount() { |  | ||||||
|                     const account = document.getElementById("account").value; |  | ||||||
|                     const password = document.getElementById("password").value; |  | ||||||
|                     const linuxdo_account = document.getElementById("linuxdo").value; |  | ||||||
|                     processLogin({ type: "0", account, password, }, linuxdo_account) |  | ||||||
|                 } |  | ||||||
|  |  | ||||||
|             </script> |  | ||||||
|             <br> |             <br> | ||||||
|             如果已有账号,请输入账号和密码<br> |             如果已有账号,请输入账号和密码<br> | ||||||
|             <input type="text" id="account" placeholder="请输入账号" onKeyUp="value = value.replace(/[\W]/g, '')" |             <input type="text" id="account" placeholder="请输入账号" onKeyUp="value = value.replace(/[\W]/g, '')" | ||||||
| @@ -218,7 +210,7 @@ function get_curl($url, $post = 0, $referer = 0, $cookie = 0, $header = 0, $ua = | |||||||
|             <br> |             <br> | ||||||
|             <input type="password" id="password" placeholder="请输入密码"> |             <input type="password" id="password" placeholder="请输入密码"> | ||||||
|             <br> |             <br> | ||||||
|             <button type="submit" @click="linkAccount">绑定并登录</button> |             <button type="submit" onclick="linkAccount">绑定并登录</button> | ||||||
|         </div> |         </div> | ||||||
|     <?php } ?> |     <?php } ?> | ||||||
| </body> | </body> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user