diff --git a/public/favicon/favicon.svg b/public/favicon/favicon.svg
index 2b9f90c..3f9dc44 100644
--- a/public/favicon/favicon.svg
+++ b/public/favicon/favicon.svg
@@ -1,3 +1,2 @@
-
\ No newline at end of file
diff --git a/src/App.vue b/src/App.vue
index 416eddf..afdfbc5 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,4 +1,3 @@
-
diff --git a/src/apis/forge/apis.js b/src/apis/forge/apis.js
deleted file mode 100644
index 5d13006..0000000
--- a/src/apis/forge/apis.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export const GET_FORGETOKEN_API = `/api/forge/oauth/token`;
-export const GET_FORGEURN_API = `/api/Device/GetBuild`
\ No newline at end of file
diff --git a/src/apis/forge/index.js b/src/apis/forge/index.js
deleted file mode 100644
index e21b26a..0000000
--- a/src/apis/forge/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// import instance from "@/util/request";
-import { GET_FORGETOKEN_API, GET_FORGEURN_API } from "./apis";
-// import apihandler from "@/util/apihandler";
-
-// 取得 URN 清單(維持你的行為)
-export async function getUrn() {
- const res = await instance.post(GET_FORGEURN_API);
- return apihandler(res.code, res.data, { msg: res.msg, code: res.code });
-}
-
-// 取得 Token(Promise 版)
-export async function fetchForgeToken() {
- const resp = await instance.get(GET_FORGETOKEN_API);
- // 兼容兩種常見回傳格式:
- // A) { dictionary: { access_token, expires_in } }
- // B) { access_token, expires_in }
- const dict = resp?.dictionary ?? resp;
- if (!dict?.access_token || !dict?.expires_in) {
- throw new Error("Invalid token response shape");
- }
- return { access_token: dict.access_token, expires_in: dict.expires_in };
-}
-
-// 兼容舊的 callback 界面(給 Viewer 的 getAccessToken 用)
-export async function getAccessToken(callback) {
- try {
- const { access_token, expires_in } = await fetchForgeToken();
- callback(access_token, expires_in);
- } catch (err) {
- console.error(err);
- alert("Could not obtain access token. See the console for more details.");
- }
-}
diff --git a/src/apis/forge/tokenCache.js b/src/apis/forge/tokenCache.js
deleted file mode 100644
index d28842c..0000000
--- a/src/apis/forge/tokenCache.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import { fetchForgeToken } from "./index";
-
-let cached = null;
-
-export async function getCachedToken() {
- const now = Date.now();
- if (cached && now < cached.expireAt) {
- return cached;
- }
- const { access_token, expires_in } = await fetchForgeToken();
- // 提前 30 秒更新,避免臨界點過期
- cached = {
- access_token,
- expires_in,
- expireAt: now + (expires_in - 30) * 1000,
- };
- return cached;
-}
-
-// 提供給 Viewer 的介面
-export async function viewerGetAccessToken(onTokenReady) {
- const { access_token, expires_in } = await getCachedToken();
- onTokenReady(access_token, expires_in);
-}
diff --git a/src/components/forge/Forge.vue b/src/components/forge/Forge.vue
index fea8b32..5160256 100644
--- a/src/components/forge/Forge.vue
+++ b/src/components/forge/Forge.vue
@@ -1,10 +1,17 @@
-