import axios from 'axios' import type AuthcClient from './AuthcClient' export class Service { request: ReturnType constructor(private authc: AuthcClient) { this.request = axios.create({ timeout: 5000, }) this.request.defaults.baseURL = authc.domainUrl this.request.interceptors.request.use(async (req) => { let token = '' try { token = await this.authc.getTokenSilently() } catch (err) { } if (token) { req.headers = { ...req.headers, Authorization: `Bearer ${token}`, } } return req }) this.request.interceptors.response.use((response) => { return Promise.resolve(response.data) }) } getUserInfo() { return this.request({ url: '/oauth/userinfo', }) } }