tiefen_space_h5/utils/auth.js

75 lines
1.6 KiB
JavaScript

import { setCookie, deleteCookie, getCookie } from "cookies-next";
import requireAPI from "./requireAPI";
import { get, save } from "./storeInfo";
export async function checkAuth() {
try {
const data = await requireAPI("POST", `/api/login/validate`);
if (data.ret === 1) {
return true;
} else {
return false;
}
} catch (e) {
// console.log(e);
}
}
export function signIn(data) {
setCookie("token", data.data.token, { maxAge: 60 * 60 * 24 * 365 * 10 });
setCookie("mid", data.data.account.mid, { maxAge: 60 * 60 * 24 * 365 * 10 });
}
export function signOut() {
deleteCookie("token");
deleteCookie("mid");
}
export async function getUserInfo(mid) {
if (!mid) return;
try {
const data = await requireAPI("POST", `/api/account/list_by_mid`, {
body: { mid },
});
if (data.ret === 1) {
return data.data.account;
}
} catch (e) {
// console.log(e);
}
}
export async function getVipPrice() {
try {
const data = await requireAPI(
"POST",
`/api/vas/get_membership_product_list`
);
if (data.ret === -1) {
Toast.show({
icon: "fail",
content: data.msg,
position: "top",
});
return;
} else {
return data.data.product.real_price / 100;
}
} catch (e) {
// console.log(e);
}
}
export async function checkRole() {
const account = get("account");
const userInfo = await getUserInfo(account.mid);
if (userInfo) {
if (userInfo.is_a_member !== account) {
save("account", userInfo);
}
}
const role = userInfo?.role;
const isVip = userInfo?.is_a_member;
return role !== 0 || isVip === 1;
}