login.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. let tokenKeyStr = "token";
  2. function getCookie(name) {
  3. const cookies = document.cookie.split(";");
  4. for (let i = 0; i < cookies.length; i++) {
  5. const cookie = cookies[i].trim();
  6. if (cookie.startsWith(name + "=")) {
  7. return cookie.substring(name.length + 1);
  8. }
  9. }
  10. return null;
  11. }
  12. function setCookie(name, value, days) {
  13. const expires = new Date();
  14. expires.setTime(expires.getTime() + days * 24 * 60 * 60 * 1000);
  15. document.cookie = name + "=" + value + ";expires=" + expires.toUTCString();
  16. }
  17. function checkLogin() {
  18. const loginId = getCookie(tokenKeyStr);
  19. if (loginId) {
  20. // 如果 cookie 中有 loginId,说明用户已经登录,直接放行
  21. return true;
  22. } else {
  23. // 如果没有 loginId,弹出登录框
  24. const username = prompt("请输入用户名");
  25. const password = prompt("请输入密码");
  26. // 发送登录请求
  27. const xhr = new XMLHttpRequest();
  28. xhr.open(
  29. "POST",
  30. "https://php.tianyunperfect.cn/controller/user.php?action=login",
  31. false
  32. );
  33. xhr.setRequestHeader("Content-Type", "application/json");
  34. xhr.send(
  35. JSON.stringify({
  36. username,
  37. password,
  38. })
  39. );
  40. const response = JSON.parse(xhr.responseText);
  41. if (response.code === 200) {
  42. setCookie(tokenKeyStr, response.data.token, 30);
  43. return true;
  44. } else {
  45. // 登录失败,弹出错误提示
  46. alert(response.message);
  47. // 删除token
  48. setCookie(tokenKeyStr, "", -1);
  49. return false;
  50. }
  51. }
  52. }
  53. checkLogin();