script 头像import axios from axios;export default name logout methods logOut this$confirm确定退出吗 提示 confirmButtonText 确定 cancelButtonText 取消 type warning then =
<script>
import { ref } from 'vue';
import axios from 'axios';
export default {
name: '/logout',
setup() {
const squareUrl = ref('');
const logOut = () => {
confirmLogout()
.then(() => {
clearToken();
clearTAR();
refreshPage();
})
.catch(() => {
// 取消退出操作
});
};
const confirmLogout = () => {
return new Promise((resolve, reject) => {
if (confirm('确定退出吗?')) {
resolve();
} else {
reject();
}
});
};
const clearToken = () => {
const token = localStorage.getItem('token');
axios
.post('http://nn.nncoding.icu:8080/api/logout', {}, {
headers: {
token: token
}
})
.then((result) => {
console.log(result);
})
.catch((error) => {
console.log(error);
});
};
const clearTAR = () => {
localStorage.removeItem('token');
localStorage.removeItem('roles');
};
const refreshPage = () => {
location.reload();
};
const getUserInfo = async () => {
const token = localStorage.getItem('token');
try {
const response = await axios.get('http://nn.nncoding.icu:8080/api/user/info', {
headers: {
token: token
}
});
let str = response.data.data.headUrl;
// 使用正则表达式提取URL
let url = str.match(/(http[s]?:\/\/[^\s]+)/g);
squareUrl.value = url[0];
} catch (error) {
console.error(error);
}
};
return {
squareUrl,
logOut,
getUserInfo
};
},
mounted() {
this.getUserInfo();
}
};
</script
原文地址: https://www.cveoy.top/t/topic/iagh 著作权归作者所有。请勿转载和采集!