当前位置: 首页 > 知识库问答 >
问题:

浏览器原生发送无记名令牌的方式

李星波
2023-03-14

我目前正在通读RFC 6749(“OAuth 2.0授权框架”)和RFC 6750(“OAuth 2.0授权框架:承载令牌使用”)。

我想知道是否有一种方法可以从基于浏览器的客户端发送授权:承载…标头,自动将令牌链接到请求,就像授权:基本…一样,可以通过在响应中发送WWW-认证:基本领域="…"来触发。浏览器然后询问用户名和密码,并在下一个请求中自动设置授权标头。

有没有办法对持有者代币做类似的事情?特别是将令牌链接到跨页面刷新工作的主机或类似上下文?

我问的原因是为了避免不必要的延迟,因为必须加载和解析一些从 LocalStorage 中提取持有者令牌并设置授权标头的 JavaScript。这也将允许我拥有不受保护的资产,这些资产不是通过 Ajax 或 Fetch 请求请求的,例如图像(img 标签)。

我知道一个常见的解决方法是用承载令牌代替会话cookie。但我想知道这个问题是否有其他解决方案。

共有1个答案

席烨
2023-03-14

访问令牌使用

没有将在 HTML 请求期间自动发送访问令牌的选项。它们设计为仅在代码显式请求时才发送。这可以防止 Cookie 中常见的某些漏洞。

混合方法

我认为现代水疗的最佳综合选择是采用以下方法:

  • 在浏览器中使用访问令牌-支持快速跨域API调用
  • 仅使用HTTP cookie来处理与页面重新加载和多标签浏览相关的方面,cookie还可以存储或链接到刷新令牌

保护超文本标记语言资产

感觉 cookie 也是唯一适合您的场景的选项。正如您所说,在您的 Javascript 捆绑包完全下载之前,将根据图像请求发送 cookie。

我的场景

我有不同的理由想要饼干和令牌的好处,在多标签浏览期间解决一些令牌更新问题。不过,我希望整体行为是SPA的行为。

有限使用的饼干

在我的例子中,我使用了一个饼干,但非常有针对性。也许在您的情况下,您可以做类似的事情,同时继续使用访问令牌进行API调用。

 类似资料:
  • 我似乎无法正确配置系统,也无法让浏览器向Web服务器发送kerberos票据。而是发送令牌。 问:我该如何解决这个问题? 下面列出了所有细节和配置。 null 这就是我在中以编程方式注册配置的方式: 和 编辑1:附加信息 我已经下载了Kerberos Authentication Tester工具,当从服务器()运行它并对进行测试时,它显示了正确的身份验证。 当从服务器(浏览器所在)运行它时,它表

  • 在处理 ASP 脚本时,任何没有包含在 ASP 定界符或 <SCRIPT> 标记中的文本或图形都将被简单地返回给浏览器。可以通过使用 Response 对象显示地把内容发送给浏览器。 发送内容 要将内容从 ASP 定界符内部或过程发送给浏览器,可以使用 Response 对象的 Write 方法。例如,下面的语句可以根据用户是否访问过此页而发送不同的问候语: <% If FirstTime =

  • 由于每次登录时都有大量文件下载,我正试图修复一个网络应用程序的性能。为此,我希望启用条件浏览器缓存,即,如果ETag发生变化,从服务器提供新的副本,否则使用浏览器缓存。 通过java过滤器从服务器发送的响应标头: 浏览器下次调用时,发送的请求标头为: 浏览器没有发送 If-None-Match 标头,因此用于验证 ETag 并发回 304 响应代码的服务器端代码失败,并且服务器始终将新副本发送到客

  • 我正在学习Spring Boot 2.0和React的全栈开发。身份验证和授权由JWT管理,除了我必须在刷新浏览器后重新登录之外,应用程序按预期工作。如何在浏览器刷新后维护JWT令牌?

  • 问题内容: 我正在为我的应用程序使用烧瓶。我想将图像(由PIL动态生成)发送给客户端,而不保存在磁盘上。 任何想法如何做到这一点? 问题答案: 首先,你可以将映像保存到临时文件并删除本地文件(如果有): 其次,将临时文件设置为响应(根据此stackoverflow问题):

  • 从这个Bugzilla线程(还有)可以看出,Firefox并不总是在POST请求中发送Origin头。RFC声明不应在某些未定义的“隐私敏感”上下文中发送。Mozilla在这里定义了这些上下文。 我很想知道,这些是不是Firefox不会发送Origin头的唯一情况。据我所知,它也不会在跨源POST请求中发送它(尽管Chrome和Internet ;Explorer会),但我不能在文档中确认这一点。

  • 问题内容: Chrome尝试在页面上加载脚本文件时收到主题错误。它说它在javascript文件的最后一行。我似乎找不到任何问题。firefox中没有错误,脚本可以按预期工作。仅使用表单验证 问题答案: 该资源末尾有某种伪造的字符。尝试删除最后一行并将其添加回去。 我无法弄清楚那里到底是什么… _编辑_我认为这是一个零宽度的空间,Unicode200B。似乎很奇怪,我当然不能肯定这不是Stacko

  • 我建立了两台服务器:第一台用于前端(localhost:7200),第二台用于后端(localhost:7300)。相应地,在路由“/test”上,前端到后端发出了一个测试请求。 问题在于,当我发送一个json对象(单击“btn”按钮时)时,它会拒绝,并显示以下消息: CORS策略阻止从http://localhost:7300/testhttp://localhost:7200访问XMLHttp