asp.net-core - 存储/验证存储在 .net core api 中的 HttpOnly cookie 中的 JWT token

标签 asp.net-core cookies jwt authorization

我向我的 api 添加了基于 jwt 的身份验证,将 token 添加到 header (授权:Bearer {tokenhere})。

我看了一下如何在客户端存储,最推荐的方法是使用HttpOnly cookie,它是在服务器端设置的,所以客户端代码无法访问它。浏览器将获取它并将其附加到 future 的请求中。

为此,服务器必须在响应中写入此 cookie,并且能够验证它而不是 header 中的 token (授权:Bearer {tokenhere})。

我该如何设置?我搜索了 how 和 low,并没有找到关于此的教程,它是 cookie 或 jwt,从来没有将 jwt 存储为 httponly cookie。

最佳答案

我找到了 2 个答案:

- 捕获请求并将 token 从 cookie 移动到作为身份验证持有者的 header ,因此当它开始处理 jwt 身份验证时,它会像这样(How to properly refresh a token using JWT + HttpOnly Cookie?)

- 覆盖 jwt 处理程序事件并覆盖从 cookie 中读取它的 token
( In ASP.NET Core read JWT token from Cookie instead of Headers )

将它写入 cookie 没什么大不了的,在登录方法中,我只是这样做:

HttpContext.Response.Cookies.Append("access_token", tokens.AccessToken, new CookieOptions { HttpOnly = true });

关于asp.net-core - 存储/验证存储在 .net core api 中的 HttpOnly cookie 中的 JWT token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61427818/

相关文章:

asp.net - 值 'AddOrder' 无效

javascript - Bootstrap 折叠 cookie 不起作用

javascript - 安装了 angular-cookies,在信息功能上出现 angular.module 错误

java - 带有 Angular 6 的 Spring Boot JWT CORS

api - 使用 Laravel JWT 重新验证时将旧 token 列入黑名单

asp.net-web-api - 资源所有者凭据与 JavaScript 和 IdentityServer 一起流动 - 不允许吗?

azure - 如何调试Azure应用程序上的错误500内部服务器错误?

c# - 在 Ubuntu 中读取 pfx 证书以创建 X509

java - HttpsURLConnection getHeaderFields 不返回 set-cookie

go - 在 Go 中解析 JSON Web token 声明