import { setItem, removeItem, StorageKeys, getItem } from "@/utils/storage"; import { defineStore } from "pinia"; import { request,requestNew } from "@/utils/network/request"; import { appId, getToken, wechatAppID, getOpenId, loginByNoPassword } from "@/utils/network/api"; import { stringToJson } from "@/utils/network/encryption"; import { confirm, msg, navTo } from "@/utils/utils"; export const useUserStore = defineStore("userStore", { state: () => ({ //访问令牌 access_token: "", //openId openId: "", }), getters: {}, actions: { //设置用户token saveToken(token) { this.access_token = token; setItem(StorageKeys.Token, token); }, //设置openId saveOpenId(openId) { this.openId = openId; setItem(StorageKeys.OpenId, openId); }, /*根据登录phoneNumber获取token信息 无感登录*/ fetchToken(phoneNumber) { const options = { type: 2, data: { accountNumber: phoneNumber, loginSource: getItem("loginSource"), }, method: "POST", showLoading: true, }; return new Promise(async (resolve, reject) => { const res = await requestNew(loginByNoPassword, options); const data = res; console.log("data==",data) setItem("openId", data.openId); setItem("token", data.accessToken); resolve(data); }).catch((error) => { reject(error); }); }, /*退出登录*/ loginOutNoConfirm() { msg("退出登录成功!"); // //把state中的值恢复成默认值 this.$reset(); // //移除本地缓存 removeItem(StorageKeys.Token); removeItem(StorageKeys.OpenId); uni.$emit('loginOut'); uni.navigateTo({ url: "/login/login" }); }, /*退出登录*/ loginOut() { confirm( "确定要退出登录吗?", () => { this.loginOutNoConfirm(); }, "提示", true ); }, }, });