connect.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. /**
  2. * 信任登录相关API
  3. */
  4. import {
  5. http,
  6. Method
  7. } from '@/utils/request.js';
  8. // 使用storage模块的方法设置登录状态为false
  9. import storage from "@/utils/storage.js";
  10. const request = http.request;
  11. /**
  12. * 上传用户头像和昵称
  13. * @param params
  14. */
  15. export function uploadInfo(params) {
  16. return http.request({
  17. url: "uniapp/wechat/uploadInfo",
  18. method: Method.POST,
  19. needToken: true,
  20. data:params,
  21. });
  22. }
  23. /**
  24. * 小程序自动登录
  25. * @param params
  26. */
  27. export function mpAutoLogin(params) {
  28. return http.request({
  29. url: `uniapp/wechat/login`,
  30. method: Method.POST,
  31. needToken: true,
  32. data: params,
  33. header: {
  34. 'Authorization': `Bearer ${storage.getAccessToken()}`
  35. },
  36. });
  37. }
  38. /**
  39. * 登出
  40. * @returns {Promise} 登出结果
  41. */
  42. export function logout() {
  43. return new Promise((resolve, reject) => {
  44. // 实际环境中应该调用后端登出接口
  45. http.request({
  46. url: "uniapp/wechat/logout",
  47. method: Method.POST,
  48. header: {
  49. 'Authorization': `Bearer ${storage.getAccessToken()}`
  50. },
  51. success: (res) => {
  52. console.log("退出登录请求",res);
  53. if (res.data.code === 200) {
  54. clearLoginState();
  55. resolve();
  56. } else {
  57. reject(res.data.message || '登出失败');
  58. }
  59. },
  60. fail: () => {
  61. reject('网络错误,请稍后再试');
  62. },
  63. complete: () => {
  64. // 无论成功失败都清除本地登录状态
  65. clearLoginState();
  66. }
  67. });
  68. // 清除登录状态
  69. clearLoginState();
  70. resolve();
  71. });
  72. }
  73. /**
  74. * 清除登录状态
  75. * 从本地存储中移除所有与登录相关的信息
  76. */
  77. export function clearLoginState() {
  78. storage.setHasLogin(false);
  79. storage.setAccessToken('');
  80. storage.setUserInfo('')
  81. }