55 lines
1.5 KiB
JavaScript
55 lines
1.5 KiB
JavaScript
import { useRouter } from 'vue-router';
|
|
import axios from 'axios';
|
|
|
|
var auth = {
|
|
getTokenHeader() {
|
|
const token = localStorage.getItem('token');
|
|
|
|
var config = {
|
|
headers: { Authorization: `Bearer ${token}` }
|
|
};
|
|
|
|
return config;
|
|
},
|
|
checkToken(redirect = true, callback = null) {
|
|
const url = new URL(window.location.href);
|
|
const api = (url.port == "5173") ? "http://localhost:3001" : "/api";
|
|
|
|
const config = this.getTokenHeader();
|
|
|
|
const router = useRouter();
|
|
axios
|
|
.get(api + "/auth",
|
|
config
|
|
)
|
|
.then((response) => {
|
|
if (response.status === 204) {
|
|
if (callback !== null) {
|
|
callback(false);
|
|
}
|
|
}
|
|
else {
|
|
if (callback !== null) {
|
|
callback(true);
|
|
}
|
|
}
|
|
})
|
|
.catch((err) => {
|
|
if (err || !err) {
|
|
if (redirect === true) {
|
|
if (callback !== null) {
|
|
callback(false);
|
|
}
|
|
router.replace("/");
|
|
}
|
|
else {
|
|
if (callback !== null) {
|
|
callback(false);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
export default auth; |