如何在 .Net 5 中使用 Hot Chocolate 修改 GraphQL 中的 Response Cookie
How to modify Response Cookie in GraphQL using Hot Chocolate in .Net 5
我正在使用 Hot Chocolate(.net 5) 构建 GraphQL API 并且需要使用 JWT 令牌添加身份验证。
在 REST API 中,我使用了仅限 http 的 cookie 来添加刷新令牌。
var cookieOption = new CookieOptions
{
HttpOnly = true,
Expires = DateTime.UtcNow.AddDays(7)
};
Response.Cookies.Append("refreshToken", <refreshToken.Token>, cookieOption);
在我的登录变更中,我无法像在 REST 中那样访问 HttpResponse API。
即使是 Hot Chocolate 的文档也没有关于如何访问 Http 响应的示例或说明。
我非常感谢对此的任何帮助。
谢谢
您可以使用 IHttpContextAccessor 访问 HttpContext 并进而修改 cookie。
public string Foo(string id, [Service] IHttpContextAccessor httpContextAccessor)
{
if (httpContextAccessor.HttpContext is not null)
{
httpContextAccessor.HttpContext.Response.Cookies...
}
}
https://chillicream.com/docs/hotchocolate/fetching-data/resolvers/#ihttpcontextaccessor
我正在使用 Hot Chocolate(.net 5) 构建 GraphQL API 并且需要使用 JWT 令牌添加身份验证。
在 REST API 中,我使用了仅限 http 的 cookie 来添加刷新令牌。
var cookieOption = new CookieOptions
{
HttpOnly = true,
Expires = DateTime.UtcNow.AddDays(7)
};
Response.Cookies.Append("refreshToken", <refreshToken.Token>, cookieOption);
在我的登录变更中,我无法像在 REST 中那样访问 HttpResponse API。
即使是 Hot Chocolate 的文档也没有关于如何访问 Http 响应的示例或说明。
我非常感谢对此的任何帮助。
谢谢
您可以使用 IHttpContextAccessor 访问 HttpContext 并进而修改 cookie。
public string Foo(string id, [Service] IHttpContextAccessor httpContextAccessor)
{
if (httpContextAccessor.HttpContext is not null)
{
httpContextAccessor.HttpContext.Response.Cookies...
}
}
https://chillicream.com/docs/hotchocolate/fetching-data/resolvers/#ihttpcontextaccessor