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

BlazorASP.NET核心与JWT身份验证签名的图像或文件URL

狄承望
2023-03-14

我有一个经过认证的BlazorWebAssembly应用程序,我需要添加显示和下载包含敏感信息的文件的功能,因此无法添加到公共URL。

我已经尝试使用Toolbelt.Blazor.HttpClientInterceptor来拦截并将JWT添加到标头中。但是他不会拦截通过 imgiframe 标签中的 src 属性进行的调用。

我也尝试过使用< code >系统。Net.Http.HttpClient,手动将JWT令牌添加到标头中,并通过< code>razor.cs设置< code>img或< code > iframe < code > src ,但是这似乎会大大降低blazors在加载时的响应速度(尽管这是通过< code > async /< code > await 完成的)。

我还希望能够添加到文件的下载链接,我不确定如何使用httpclient实现这一点?

从阅读以下链接;

基于令牌的身份验证映像URLS

推荐的方法是创建一个匿名endpoint,用GUID进行访问。但是,我不确定如何安全地生成GUID并检查它的有效性?有什么nuget包可以帮助解决这种情况吗?

共有1个答案

宫亦
2023-03-14

尝试使用Javascript Blob流式传输文件。可以创建一个唯一的一次性临时url,这应该是一个安全的选项。

 类似资料:
  • 我正在开发ASP NET核心Web API,对认证方式的选择感到困惑。我曾经应用默认的Asp Net身份验证,但最近我知道了JWT。因此,我几乎像本文中一样实现了身份验证:https://stormpath.com/blog/token-authentication-asp-net-core。但是我不能理解这个JWT的好处。通过简单的Asp Net身份认证,我不关心令牌存储等,我只需要用signI

  • 我正在开发一个具有自己的身份验证和授权机制的REST应用程序。我想使用JSON Web Tokens进行身份验证。以下是有效且安全的实现吗? < li >将开发一个REST API来接受用户名和密码并进行认证。要使用的HTTP方法是POST,因此没有缓存。此外,在传输时还会有安全SSL < li >在认证时,将创建两个JWTs访问令牌和刷新令牌。刷新令牌将具有更长的有效期。这两个令牌都将写入coo

  • 首先,我要说,这不是客户端令牌与服务器端会话引用的问题。我理解这些差异,我已经决定采用无会话的实现方式。 我还决定使用cookie来实现客户端的持久性和传输,而不是使用localStorage、query param、auth headers等。 好了,现在我考虑两种在客户端上保存用户ID的方法。两者都可以通过数据签名防止篡改。 Express有一个中间件可以启用签名cookie,或者我可以使用一

  • 在身份验证等情况下,与会话相比,使用JWTs有什么优势? 它是作为独立方法使用还是在会话中使用?

  • 在auth-routes示例中,api和nuxt一起启动并使用一个Node.js服务器实例。但是,有时我们应该使用jsonWebToken处理外部api身份验证问题。在这个例子中,将用最简单的方式解释。 官方 auth-module 如果要实现复杂的身份验证流程,例如OAuth2,我们建议使用官方 auth-module 结构 由于Nuxt.js同时提供服务器和客户端呈现,并且浏览器的cookie