You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import {
  2. setItem,
  3. removeItem,
  4. StorageKeys,
  5. getItem
  6. } from "@/utils/storage";
  7. import {
  8. defineStore
  9. } from "pinia";
  10. import {
  11. request
  12. } from "@/utils/network/request";
  13. import {
  14. appId,
  15. getToken
  16. } from "@/utils/network/api";
  17. import {
  18. stringToJson
  19. } from "@/utils/network/encryption";
  20. import {
  21. confirm,
  22. msg,
  23. navTo
  24. } from "@/utils/utils";
  25. export const useUserStore = defineStore("userStore", {
  26. state: () => ({
  27. //访问令牌
  28. access_token: "",
  29. //openId
  30. openId: "",
  31. }),
  32. getters: {},
  33. actions: {
  34. //设置用户token
  35. saveToken(token) {
  36. this.access_token = token;
  37. setItem(StorageKeys.Token, token);
  38. },
  39. //设置openId
  40. saveOpenId(openId) {
  41. this.openId = openId;
  42. setItem(StorageKeys.OpenId, openId);
  43. },
  44. /*根据登录code获取token信息*/
  45. fetchToken(code) {
  46. console.log(code);
  47. const options = {
  48. type: 2,
  49. data: {
  50. deviceId: "",
  51. code: code,
  52. loginSource: "69af303ba2eb4608a099163f0d2a5dbd"
  53. },
  54. method: "POST",
  55. showLoading: false,
  56. };
  57. return new Promise(async (resolve, reject) => {
  58. const res = await request(getToken, options);
  59. const data = stringToJson(res.bizContent);
  60. this.saveToken(data.accessToken);
  61. this.saveOpenId(data.openId);
  62. console.log('输出内容', data.openId)
  63. resolve(data);
  64. }).catch((error) => {
  65. reject(error);
  66. });
  67. },
  68. /*退出登录*/
  69. loginOutNoConfirm() {
  70. msg("退出登录成功!");
  71. // //把state中的值恢复成默认值
  72. this.$reset();
  73. // //移除本地缓存
  74. removeItem(StorageKeys.Token);
  75. removeItem(StorageKeys.OpenId);
  76. uni.$emit('loginOut');
  77. uni.navigateTo({
  78. url: "/login/login"
  79. });
  80. },
  81. /*退出登录*/
  82. loginOut() {
  83. confirm(
  84. "确定要退出登录吗?",
  85. () => {
  86. this.loginOutNoConfirm();
  87. },
  88. "提示",
  89. true
  90. );
  91. },
  92. },
  93. });