auth.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. "use strict";
  2. Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
  3. const common_vendor = require("../common/vendor.js");
  4. const utils_api = require("./api.js");
  5. const TOKEN_KEY = "user_token";
  6. const USER_INFO_KEY = "user_info";
  7. const setToken = (token) => {
  8. common_vendor.index.setStorageSync(TOKEN_KEY, token);
  9. };
  10. const getToken = () => {
  11. return common_vendor.index.getStorageSync(TOKEN_KEY) || null;
  12. };
  13. const removeToken = () => {
  14. common_vendor.index.removeStorageSync(TOKEN_KEY);
  15. };
  16. const setUserInfo = (userInfo) => {
  17. common_vendor.index.setStorageSync(USER_INFO_KEY, JSON.stringify(userInfo));
  18. };
  19. const getUserInfo = () => {
  20. const userInfo = common_vendor.index.getStorageSync(USER_INFO_KEY);
  21. return userInfo ? JSON.parse(userInfo) : null;
  22. };
  23. const removeUserInfo = () => {
  24. common_vendor.index.removeStorageSync(USER_INFO_KEY);
  25. };
  26. const isLoggedIn = () => {
  27. return !!getToken();
  28. };
  29. const logout = () => {
  30. removeToken();
  31. removeUserInfo();
  32. };
  33. const wxAuthLogin = async (successCallback, failCallback) => {
  34. try {
  35. const loginRes = await common_vendor.index.login();
  36. console.log("[微信登录] 获取code成功:", loginRes.code);
  37. const result = await utils_api.wxLogin({
  38. code: loginRes.code
  39. });
  40. console.log("[微信登录] 登录成功:", result);
  41. setToken(result.data.token);
  42. setUserInfo(result.data.userInfo);
  43. common_vendor.index.showToast({
  44. title: "登录成功",
  45. icon: "success",
  46. duration: 1500
  47. });
  48. if (successCallback) {
  49. setTimeout(() => {
  50. successCallback();
  51. }, 1500);
  52. }
  53. return true;
  54. } catch (error) {
  55. console.error("[微信登录] 登录失败:", error);
  56. common_vendor.index.showToast({
  57. title: error.message || "登录失败",
  58. icon: "none",
  59. duration: 2e3
  60. });
  61. if (failCallback) {
  62. failCallback(error);
  63. }
  64. return false;
  65. }
  66. };
  67. const checkLogin = (callback) => {
  68. if (isLoggedIn()) {
  69. return true;
  70. }
  71. common_vendor.index.showModal({
  72. title: "登录提示",
  73. content: "此功能需要登录后使用,是否立即登录?",
  74. confirmText: "立即登录",
  75. cancelText: "暂不登录",
  76. success: (res) => {
  77. if (res.confirm) {
  78. wxAuthLogin(callback);
  79. }
  80. }
  81. });
  82. return false;
  83. };
  84. exports.checkLogin = checkLogin;
  85. exports.getToken = getToken;
  86. exports.getUserInfo = getUserInfo;
  87. exports.isLoggedIn = isLoggedIn;
  88. exports.logout = logout;
  89. exports.removeToken = removeToken;
  90. exports.removeUserInfo = removeUserInfo;
  91. exports.setToken = setToken;
  92. exports.setUserInfo = setUserInfo;
  93. exports.wxAuthLogin = wxAuthLogin;