LoginManager.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. class LoginManager {
  2. constructor(apiUrl) {
  3. this.apiUrl = apiUrl; // 存储API的URL
  4. }
  5. validateInput(username, password) {
  6. const invalidChars = /[^a-zA-Z0-9]/; // 定义一个正则表达式,匹配非法字符
  7. if (invalidChars.test(username) || invalidChars.test(password)) {
  8. return false; // 如果输入包含非法字符,则验证失败
  9. }
  10. return true; // 否则验证成功
  11. }
  12. async login(username, password) {
  13. if (!this.validateInput(username, password)) {
  14. alert("用户名和密码只能包含字母和数字!"); // 验证失败时弹出提示
  15. return;
  16. }
  17. try {
  18. const response = await fetch(this.apiUrl, { // 发送POST请求到服务器
  19. method: 'POST',
  20. headers: {
  21. 'Content-Type': 'application/json' // 设置请求头部为JSON格式
  22. },
  23. body: JSON.stringify({ username, password }) // 将用户名和密码转换为JSON字符串
  24. });
  25. if (response.ok) {
  26. const data = await response.json(); // 如果请求成功,解析JSON数据
  27. return data; // 返回数据
  28. } else {
  29. throw new Error('登录失败!'); // 如果响应不成功,抛出错误
  30. }
  31. } catch (error) {
  32. console.error('登录请求失败:', error); // 捕获错误并在控制台输出
  33. }
  34. }
  35. }
  36. export default LoginManager; // 导出LoginManager类