61 lines
1.6 KiB
JavaScript

/**
* @description 用户信息数据持久化
*/
import { defineStore } from 'pinia'
import { getUserInfoRequest, loginRequest, phoneLoginRequest } from '@/api/user'
import { useLockStore } from '@/stores/lock'
export const useUserStore = defineStore('user', {
state() {
return {
// 用户信息
userInfo: {},
// 登录状态
isLogin: false
}
},
actions: {
updateUserInfo(data) {
this.userInfo = data
},
updateLoginStatus(status) {
this.isLogin = status
},
async getPhone(data) {
const { iv, encryptedData } = data
const that = this
return new Promise((resolve) => {
uni.checkSession({
async success(){
const openid = uni.getStorageSync('openid')
const { code, data, message } = await phoneLoginRequest({ iv, encryptedData, openid })
if(code === 0) {
uni.setStorageSync('token', data.accessToken)
resolve(true)
} else {
resolve(false)
}
},
fail() {
uni.login({
provider: 'weixin',
success: async function (loginRes) {
const { code, data } = await loginRequest({
js_code: loginRes.code
})
if (code === 0) {
uni.setStorageSync('openid', data.openid)
}
resolve(false)
},
fail() {
resolve(false)
}
})
}
})
})
}
}
})