diff --git a/src/api/auth.js b/src/api/auth.js index 415d9f1..371b8a0 100644 --- a/src/api/auth.js +++ b/src/api/auth.js @@ -3,3 +3,5 @@ import ajax from "./ajax"; export const login = async (params) => ajax(`/auth/login`, params, "POST", { requestBase: 'sso' }); export const sendVerify = async (username) => ajax(`/auth/sendVerify`, {username}, "POST", { requestBase: 'sso' }); + +export const verifyActivationToken = async (token)=> ajax(`/auth/verifyActivationToken`,{token},"GET") diff --git a/src/api/user.js b/src/api/user.js index e1f7820..9e13361 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -1,6 +1,6 @@ import ajax from "./ajax"; -export const getUserInfo = async () => ajax(`/user/getUserInfo`); +export const getUserInfo = async (params) => ajax(`/user/getUserInfo`,params,'POST'); export const setUserLevel = async (level) => ajax(`/user/setUserLevel`, { level }, "POST"); @@ -21,3 +21,4 @@ export const getUserFavorite = async () => ajax(`/user/getFavorite`); export const getUserConnections = async () => ajax(`/user/getConnections`); export const addFavorite = async (userid)=> ajax(`/user/addFavorite`,{userid},"POST") export const delFavorite = async (id)=> ajax(`/user/delFavorite`,{id},"POST") + diff --git a/src/components/Preview.vue b/src/components/Preview.vue index 905f996..bf9ac4d 100644 --- a/src/components/Preview.vue +++ b/src/components/Preview.vue @@ -21,12 +21,13 @@ const flexRef = ref(null) onActivated(() => { flexRef.value.innerHTML = '' - let flexContent = genCard1(JSON.parse(route.params.content)) + let flexContent = genCard1(JSON.parse(sessionStorage.getItem('preview'))) flex2html("flex", flexContent) }) onDeactivated(() => { + sessionStorage.removeItem('preview') }) diff --git a/src/router/index.js b/src/router/index.js index 9401e35..a7aa21a 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -25,6 +25,11 @@ const routes = [ name: "LineLogin", component: ()=> import("../views/Login/LineLogin.vue") }, + { + path: "/activation", + name: "Activation", + component: ()=> import("../views/Login/activation.vue") + }, { path: "/send", name: "Send", @@ -147,7 +152,7 @@ const router = createRouter({ router.beforeEach((to, from, next) => { NProgress.start(); - if ( to.path !== "/login" && to.path !== "/register" && to.path !== "/linelogin") { + if ( to.path !== "/login" && to.path !== "/register" && to.path !== "/linelogin" && to.path !== "/activation") { if (!Cookies.get("token")) { Toast('請重新登入') next("/login") diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 2852e4a..fc597fc 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -21,7 +21,15 @@ export default { }, actions: { async getUserInfo(context) { - var res = await getUserInfo(); + let params = {} + //檢查LOCALSTORAGE是否有slashToken + + if(sessionStorage.getItem('slashToken')){ + params.slashToken = sessionStorage.getItem('slashToken'); + } + var res = await getUserInfo(params); + sessionStorage.removeItem('slashToken'); + if (res.code === 200) { context.commit("setUserInfo", res.data); return true; diff --git a/src/views/Card/Edit.vue b/src/views/Card/Edit.vue index bbf6ec0..ba9e228 100644 --- a/src/views/Card/Edit.vue +++ b/src/views/Card/Edit.vue @@ -504,6 +504,7 @@ import Cookies from 'js-cookie' import { Toast } from "vant"; import { Cropper } from "vue-advanced-cropper"; + import "vue-advanced-cropper/dist/style.css"; import { genCard1 } from "@/utils/card2"; @@ -823,9 +824,9 @@ export default defineComponent({ }; const handlePreview = () => { + sessionStorage.setItem("preview", JSON.stringify(state.form)); router.push({ - name: "CardPreview", - params: { content: JSON.stringify(state.form) }, + name: "CardPreview" }); }; diff --git a/src/views/Card/Preview.vue b/src/views/Card/Preview.vue deleted file mode 100644 index 2b06e15..0000000 --- a/src/views/Card/Preview.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/Home/index.vue b/src/views/Home/index.vue index 1e4383e..b1da84b 100644 --- a/src/views/Home/index.vue +++ b/src/views/Home/index.vue @@ -236,6 +236,7 @@ const deferredPrompt = ref(null); onBeforeMount(async () => { let res = await store.dispatch("user/getUserInfo"); + if(!res){ router.push('/login') } diff --git a/src/views/Login/LineLogin.vue b/src/views/Login/LineLogin.vue index 6407751..1d8d131 100644 --- a/src/views/Login/LineLogin.vue +++ b/src/views/Login/LineLogin.vue @@ -22,6 +22,13 @@ if (!code) { } else { const client_id = process.env.VUE_APP_LINE_CLINE_ID; + // 檢查state是否為login + if(route.query.state != 'login'){ + //將state存入sessionStorage + sessionStorage.setItem("slashToken", route.query.state); + } + + //判斷domain是否包含localhost let redirect_uri = ""; if (store.state.domain.includes("localhost")) { diff --git a/src/views/Login/activation.vue b/src/views/Login/activation.vue new file mode 100644 index 0000000..1bf8220 --- /dev/null +++ b/src/views/Login/activation.vue @@ -0,0 +1,250 @@ + + + + + \ No newline at end of file diff --git a/src/views/Login/index.vue b/src/views/Login/index.vue index 2f9c160..a13fd63 100644 --- a/src/views/Login/index.vue +++ b/src/views/Login/index.vue @@ -1,74 +1,3 @@ - - + +