75 lines
1.6 KiB
JavaScript
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;
|
|
}
|