feat: 添加用户姓名字段并实现token登录功能
在订单提交请求中添加用户姓名字段,并实现通过token进行登录的功能。同时优化了路由守卫中的登录状态检查逻辑。
This commit is contained in:
parent
e777d1e931
commit
55ba35230e
21
src/App.vue
21
src/App.vue
|
@ -3,10 +3,14 @@ import Layout from "@/layout/index.vue"
|
|||
import { useUserStore } from "@/pinia/stores/user"
|
||||
import { useDark } from "@@/composables/useDark"
|
||||
import { useWxStore } from "@/pinia/stores/wx"
|
||||
import { tokenLogin } from '@/common/apis/ab98'
|
||||
import { useAb98UserStore } from '@/pinia/stores/ab98-user'
|
||||
|
||||
// const userStore = useUserStore()
|
||||
const wxStore = useWxStore()
|
||||
const route = useRoute()
|
||||
const router = useRouter()
|
||||
const ab98UserStore = useAb98UserStore()
|
||||
|
||||
const { isDark, initDark } = useDark()
|
||||
|
||||
|
@ -31,6 +35,23 @@ onMounted(() => {
|
|||
const state = urlParams.get('state') || undefined;
|
||||
const corpid = urlParams.get('corpid') || undefined;
|
||||
const isAdmin = urlParams.get('isAdmin') || undefined;
|
||||
|
||||
if (state && state.indexOf('token') !== -1) {
|
||||
const token = state.split('token_')[1];
|
||||
ab98UserStore.setTokenLogin(token);
|
||||
|
||||
tokenLogin(token).then(res => {
|
||||
if (res && res.code == 0) {
|
||||
if (res.data.success) {
|
||||
ab98UserStore.setTel(res.data.tel)
|
||||
ab98UserStore.setUserInfo(res.data)
|
||||
ab98UserStore.setIsLogin(true)
|
||||
router.push('/')
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
if (isAdmin == '1') {
|
||||
wxStore.setIsCabinetAdmin(true);
|
||||
}
|
||||
|
|
|
@ -52,4 +52,13 @@ export function logoutApi(token: string) {
|
|||
method: 'post',
|
||||
params: { token }
|
||||
})
|
||||
}
|
||||
|
||||
/** ab98Token登录 */
|
||||
export function tokenLogin(token: string) {
|
||||
return request<ApiResponseData<LoginData>>({
|
||||
url: '/wx/login/tokenLogin',
|
||||
method: 'get',
|
||||
params: { token }
|
||||
})
|
||||
}
|
|
@ -26,6 +26,8 @@ export interface SubmitOrderRequestData {
|
|||
paymentType: 'wechat' | 'balance';
|
||||
/** 联系电话 */
|
||||
mobile: string;
|
||||
/** 用户姓名 */
|
||||
name: string;
|
||||
/** 企业微信用户ID或汇邦云用户ID */
|
||||
qyUserid: string;
|
||||
/** 是否内部订单 0否 1汇邦云用户 2企业微信用户 */
|
||||
|
|
|
@ -17,7 +17,7 @@ const wxStore = useWxStore()
|
|||
const { openid, balance, corpidLogin, userid: qyUserid } = storeToRefs(wxStore)
|
||||
|
||||
const ab98UserStore = useAb98UserStore()
|
||||
const { tel, userid: ab98Userid } = storeToRefs(ab98UserStore)
|
||||
const { tel, userid: ab98Userid, name } = storeToRefs(ab98UserStore)
|
||||
|
||||
const selectedPayment = ref<'wechat' | 'balance'>('wechat')
|
||||
const contact = ref("")
|
||||
|
@ -101,6 +101,7 @@ async function handleSubmit() {
|
|||
})),
|
||||
paymentType: selectedPayment.value,
|
||||
mobile: tel.value,
|
||||
name: name.value,
|
||||
qyUserid: isInternal === 2 ? qyUserid.value : ab98Userid.value,
|
||||
isInternal: isInternal
|
||||
}
|
||||
|
|
|
@ -36,7 +36,9 @@ export const useAb98UserStore = defineStore("ab98User", () => {
|
|||
const tel = ref<string>(storedTel ? decodeURIComponent(storedTel) : "")
|
||||
// 用户认证令牌
|
||||
const storedToken = localStorage.getItem(STORAGE_KEYS.TOKEN)
|
||||
const token = ref<string>(storedToken ? decodeURIComponent(storedToken) : "")
|
||||
const token = ref<string>(storedToken ? decodeURIComponent(storedToken) : "");
|
||||
|
||||
const tokenLogin = ref<string>("");
|
||||
// 用户登录状态
|
||||
const isLogin = ref<boolean>(false);
|
||||
isLogin.value = tel.value ? true : false;
|
||||
|
@ -98,6 +100,10 @@ export const useAb98UserStore = defineStore("ab98User", () => {
|
|||
isLogin.value = value;
|
||||
}
|
||||
|
||||
const setTokenLogin = (value: string) => {
|
||||
tokenLogin.value = value;
|
||||
}
|
||||
|
||||
return {
|
||||
face_img,
|
||||
sex,
|
||||
|
@ -107,11 +113,13 @@ export const useAb98UserStore = defineStore("ab98User", () => {
|
|||
tel,
|
||||
token,
|
||||
isLogin,
|
||||
tokenLogin,
|
||||
setUserInfo,
|
||||
setToken,
|
||||
setTel,
|
||||
setIsLogin,
|
||||
clearUserInfo
|
||||
clearUserInfo,
|
||||
setTokenLogin
|
||||
}
|
||||
})
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ import { getToken } from "@@/utils/cache/cookies"
|
|||
import NProgress from "nprogress"
|
||||
import { useAb98UserStore } from '@/pinia/stores/ab98-user'
|
||||
|
||||
const ab98UserStore = useAb98UserStore()
|
||||
|
||||
NProgress.configure({ showSpinner: false })
|
||||
|
||||
|
@ -26,8 +27,7 @@ export function registerNavigationGuard(router: Router) {
|
|||
return true;
|
||||
}
|
||||
|
||||
const userStore = useAb98UserStore()
|
||||
if (!userStore.isLogin) {
|
||||
if (!ab98UserStore.isLogin) {
|
||||
// 如果在免登录的白名单中,则直接进入
|
||||
if (isWhiteList(to)) return true
|
||||
// 其他没有访问权限的页面将被重定向到登录页面
|
||||
|
|
Loading…
Reference in New Issue