parent
370963f653
commit
db77b14659
@ -0,0 +1,92 @@
|
|||||||
|
<script setup>
|
||||||
|
import { login, bindCard } from "@/api";
|
||||||
|
|
||||||
|
import { useRouter, useRoute } from 'vue-router';
|
||||||
|
|
||||||
|
const route = useRoute();
|
||||||
|
const router = useRouter();
|
||||||
|
|
||||||
|
const liff = window.liff;
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (!liff.isLoggedIn()) liff.login({ redirectUri: window.location.href });
|
||||||
|
} catch (err) {
|
||||||
|
console.log(`liff.state init error ${err}`);
|
||||||
|
showToast("登入失敗。請聯絡管理員");
|
||||||
|
router.push("/login");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!sessionStorage.getItem("token")) { // 未登入先要登入
|
||||||
|
const profile = await liff.getProfile();
|
||||||
|
|
||||||
|
const id_token = liff.getIDToken();
|
||||||
|
|
||||||
|
let loginRes = await login({ line_id: profile.userId, token: id_token });
|
||||||
|
|
||||||
|
if (loginRes.code === 200) {
|
||||||
|
if (route.query.act === "openright") {
|
||||||
|
showToast("您已經是本站會員");
|
||||||
|
}
|
||||||
|
sessionStorage.setItem("token", loginRes.data.token);
|
||||||
|
sessionStorage.setItem("uid", loginRes.data.uid);
|
||||||
|
} else if (loginRes.code === 202) { // 未綁定卡片
|
||||||
|
if (route.query.act === "openright") {
|
||||||
|
if (route.query.verify) {
|
||||||
|
//詢問是否綁定
|
||||||
|
Dialog.confirm({
|
||||||
|
title: "卡片綁定",
|
||||||
|
message: "確認是否綁定這張卡片",
|
||||||
|
})
|
||||||
|
.then(async () => {
|
||||||
|
//確認綁定
|
||||||
|
let bindRes = await bindCard({
|
||||||
|
uid: loginRes.data.uid,
|
||||||
|
verify: route.query.verify,
|
||||||
|
});
|
||||||
|
if (bindRes.code === 200) {
|
||||||
|
showSuccessToast("綁定成功");
|
||||||
|
} else {
|
||||||
|
showToast.fail("綁定失敗");
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(() => { });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sessionStorage.setItem("token", loginRes.data.token);
|
||||||
|
sessionStorage.setItem("uid", loginRes.data.uid);
|
||||||
|
} else if (loginRes.code === 201) { // 非會員
|
||||||
|
if (route.query.act === "openright") { // 開卡
|
||||||
|
if (route.query.verify) {
|
||||||
|
router.push({
|
||||||
|
path: "/register",
|
||||||
|
query: {
|
||||||
|
verify: route.query.verify,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
} else if (route.query.aid) { // 會員註冊
|
||||||
|
router.push({
|
||||||
|
path: "/register",
|
||||||
|
query: {
|
||||||
|
aid: route.query.aid,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
showToast("請先註冊成為本站會員");
|
||||||
|
router.push({
|
||||||
|
path: "/register",
|
||||||
|
query: { refer: route.query.refer },
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
showToast("登入失敗。請聯絡管理員");
|
||||||
|
router.push("/login");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
router.push(sessionStorage.getItem("redirect"));
|
||||||
|
sessionStorage.removeItem("redirect");
|
||||||
|
</script>
|
||||||
Loading…
Reference in new issue