<script>

        // 添加请求拦截器

        axios.interceptors.request.use((config) => {

            return new Promise(resolve, reject => {

                getAccessToken().then(res => {

                    if (res) {

                        config.headers.Authorization = res;

                        resolve(config);

                    } else {

                        reject("");

                    }



                }).catch(err => {

                    resolve(config);

                })

            });

        }, err => {

            return Promise.reject(err);

        });

        function getAccessToken() {

            return new Promise(resolve, reject => {

                let accessToken = window.localStorage.getItem("accessToken");

                let refreshToken = window.localStorage.getItem("refreshToken");

                if (accessToken) {

                    // 使用刷新token重新获取token

                    /*

                    ********************  

                    */

                    resolve(accessToken);

                } else {

                    reject("get access token fail");

                }

            });

        }



    </script>

考虑到使用到了刷新token用于更新token,而获取新的token是异步获取的,之前直接返回config,可能会导致token没有带上就去请求,所以返回promise

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐