diff --git a/test/home.html b/test/home.html index 9523f3b..db5bac3 100644 --- a/test/home.html +++ b/test/home.html @@ -346,19 +346,10 @@ header("Allow: GET, POST, OPTIONS, PUT, DELETE"); .then(data => { // store token in global variable and vscode global state USERTOKEN = data.sha1; - communicateVSCodeByWebview('setUserToken', { userToken: USERTOKEN }) - .then(result => { - if (result.ok) { - console.log('User token has been set to vscode global state') - loadPageModules() - } else { - throw new Error('Error in setting user token to vscode global state') - } - }) - .catch(error => { - console.error('Error in setting user token to vscode global state:', error) - }) - setUsernameToVSCode(username) + USERNAME = username; + setUserTokenToVSCode(USERTOKEN); + setUsernameToVSCode(username); + loadPageModules() closeLoginModal() }) @@ -380,24 +371,34 @@ header("Allow: GET, POST, OPTIONS, PUT, DELETE"); } async function logout() { - // remove token from global variable and vscode global state + // remove token and username from global variable and vscode global state USERTOKEN = null - communicateVSCodeByWebview('setUserToken', { userToken: ''}) - .then(result => { - if (result.ok) { - console.log('User token has been removed from vscode global state') - } else { - throw new Error('Error in removing user token from vscode global state') - } - }) - .catch(error => { - console.error('Error in removing user token from vscode global state:', error) - }) + USERNAME = null + await setUserTokenToVSCode('') await setUsernameToVSCode('') location.reload() } + async function setUserTokenToVSCode(userToken) { + var removeUserToken = false; + if (userToken == '') { + removeUserToken = true + } + + communicateVSCodeByWebview('setUserToken', { userToken: userToken }) + .then(result => { + if (result.ok) { + console.log(removeUserToken ? 'User token has been removed from vscode' :'User token has been stored in vscode') + } else { + console.error(removeUserToken ? 'Failed to remove user token from vscode': 'Failed to store user token into vscode') + } + }) + .catch(error => { + console.error('Failed to set user token into vscode:', error) + }) + } + async function setUsernameToVSCode(username) { var removeUsername = false; if (username == '') { @@ -465,7 +466,7 @@ header("Allow: GET, POST, OPTIONS, PUT, DELETE"); // 打开弹窗 function openModal() { // make sure login first - if (!USERTOKEN) { + if (!USERTOKEN || !USERNAME) { showAlert('请先登录!', 3000) return }