使用全局JS方法拦截Axios请求

Markoffden

我有一个网站,该网站具有基于Web组件的体系结构,其中每个Web组件都可以是单独的Vue应用程序,它具有自己的API层,可以通过Axios集成。我需要为来自根应用程序或Web组件应用程序的所有HTTP请求实现身份验证中间件。我不能使用Axios内置的拦截器机制,因为将有多个Axios实例。有什么办法可以使用全局JS方法吗?我知道那里有一些基于浏览器扩展的API,但这似乎不是我想要的东西。

Markoffden

以防万一其他人有兴趣,我已经与服务人员解决了。您可以订阅fetch事件并根据您的身份验证逻辑进行响应。您的服务工作者代码如下所示:

self.addEventListener('fetch', async (event) => {
    const isAuthorised = await checkIsAuthorized(); // your auth API layer
    if (!isAuthorised) {
        const response = new Response(null, {
            status: 401,
            statusText: 'Unauthorised',
        });
        event.respondWith(response);
        return;
    }
    event.respondWith(fetch(event.request));
});

服务工作者也能够拦截来自影子DOM的axios请求,因此它非常适合Web组件案例。

此外,Bartosz Polnik撰写一篇不错的文章,介绍了如何使用Service Worker实现auth层。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

axios拦截器中的更改请求方法

来自分类Dev

Axios:如何拦截和响应axios请求

来自分类Dev

Axios拦截器拦截所有Axios请求

来自分类Dev

React Hooks:使用axios拦截器显示全局微调器吗?

来自分类Dev

如何使用Angular JS拦截每个Ajax请求

来自分类Dev

使用 Axios 拦截器停止请求并检查令牌是否过期

来自分类Dev

使用axios -Vue.js删除请求

来自分类Dev

用于令牌刷新的Axios全局拦截器

来自分类Dev

拦截AJAX响应时推断请求方法

来自分类Dev

使用vue.js和Airtable的多个axios请求

来自分类Dev

使用AXIOS(Node.js)在请求之间保留cookie

来自分类Dev

从URL提取令牌并使用Axios发送发布请求-Vue js

来自分类Dev

在React.js中使用axios发送POST请求的问题

来自分类Dev

Angular:使用$ resource拦截特定请求

来自分类Dev

Vue.js-导出axios拦截器

来自分类Dev

拦截全局功能

来自分类Dev

对axios请求使用动态参数

来自分类Dev

未在NextJS中使用axios拦截器定义localStorage

来自分类Dev

在express.js中拦截对静态文件的请求

来自分类Dev

在express.js中拦截对静态文件的请求

来自分类Dev

在节点js请求中使用GET方法?

来自分类Dev

Node.js无法使用Promise,Mongoose和GET请求推送到全局数组

来自分类Dev

Angular.js:存储来自http.get请求的变量以在不同的$ scope函数中全局使用

来自分类Dev

全局捕获无效的 HTTP 请求方法

来自分类Dev

有没有办法拦截Axios请求并返回自定义响应?

来自分类Dev

使用拦截器的每个请求的HTTP测量时间

来自分类Dev

在动态ngSrc请求中强制使用HTTP拦截器

来自分类Dev

如何使用HTTP拦截器发出HTTP请求

来自分类Dev

使用 AJAX 发送 POST 请求,被 Burp Suite 拦截

Related 相关文章

热门标签

归档