Authentication 如何从chrome扩展向基于rest会话的api发出请求

Authentication 如何从chrome扩展向基于rest会话的api发出请求,authentication,google-chrome-extension,django-rest-framework,Authentication,Google Chrome Extension,Django Rest Framework,我有一个基于django rest框架的应用程序,我使用的是基于会话的身份验证。所有API都需要会话身份验证才能返回结果,否则将返回403 应用程序具有登录流,其中用户登录和会话在cookie下设置,所有API在此之后都经过身份验证 现在我正在为同一个应用程序构建chrome扩展,我需要在其中调用一个RESTAPI。因为用户已经登录到浏览器中,所以我假设可以从chrome扩展进行api调用。但是当我从chrome扩展进行api调用时,它返回403。我正在使用fetch执行请求 我是开发chrom

我有一个基于django rest框架的应用程序,我使用的是基于会话的身份验证。所有API都需要会话身份验证才能返回结果,否则将返回403

应用程序具有登录流,其中用户登录和会话在cookie下设置,所有API在此之后都经过身份验证

现在我正在为同一个应用程序构建chrome扩展,我需要在其中调用一个RESTAPI。因为用户已经登录到浏览器中,所以我假设可以从chrome扩展进行api调用。但是当我从chrome扩展进行api调用时,它返回403。我正在使用fetch执行请求

我是开发chrome扩展的新手,所以我不知道如何验证来自chrome扩展的api调用,因为用户已经登录到浏览器

我尝试了ajax请求和fetch请求,并在manifest.json中设置了权限

fetch(url, {
 credentials: 'include'
})

身份验证cookie可能只是会话,因此它们只能在选项卡中工作。使用devtools(或其他工具,如Fiddler)将扩展发出的请求与普通网页(可能在其devtools控制台中)发出的请求进行比较,在普通网页中对用户进行身份验证。嗯,不,我不这么认为,因为一旦您进行了身份验证,您就可以直接在浏览器的任何其他选项卡中调用api。所以这肯定不仅仅是针对该选项卡。是的,在chrome扩展中没有请求头,基本上在发出请求时没有设置cookie,在浏览器中,请求头设置了适当的cookie值尝试在获取选项(以及该模式的其他值)中指定
模式:“cors”
。不,它不会再次工作,禁止请求,这是fetch请求``fetch(“https:/example.com/api/v1/”{credentials:'include',mode:'cors'})。然后(函数(response){return response.json();})。然后(函数(json){console.log(json);});``在manifest.json中,我添加了“权限”:[“https:/example.com”],身份验证cookie可能只是会话,因此它们只能在选项卡中工作。使用devtools(或其他工具,如Fiddler)将扩展发出的请求与普通网页(可能在其devtools控制台中)发出的请求进行比较,在普通网页中对用户进行身份验证。嗯,不,我不这么认为,因为一旦您进行了身份验证,您就可以直接在浏览器的任何其他选项卡中调用api。所以这肯定不仅仅是针对该选项卡。是的,在chrome扩展中没有请求头,基本上在发出请求时没有设置cookie,在浏览器中,请求头设置了适当的cookie值尝试在获取选项(以及该模式的其他值)中指定
模式:“cors”
。不,它不会再次工作,禁止请求,这是fetch请求``fetch(“https:/example.com/api/v1/”{credentials:'include',mode:'cors'})。然后(函数(response){return response.json();})。然后(函数(json){console.log(json);});``在manifest.json中,我添加了“权限”:[“https:/example.com”],