sách gpt4 ai đã đi

asp.net-core - 使用 IHttpClientFactory.Net Core 使用外部 API 时在何处存储访问和刷新 token

In lại 作者:行者123 更新时间:2023-12-05 00:54:13 hai mươi bốn 4
mua khóa gpt4 Nike

我使用 IHttpClientFactory 从我的 Web API 向使用 Net Core 2.2 的外部 API 发送请求和接收 HTTP 响应。

用于向 API 发送请求的访问 token 和刷新 token 已存储在 appsettings.json 中。当请求返回 403 或 401 错误时,我会动态获取一个新 token 并将其添加到请求的 header 中。

但是我如何使用新的访问和刷新 token 更新 appsettings.json 以便将其用于后续请求。

是否有比 appsettings.json 更好的方法来存储访问和刷新 token ?

1 Câu trả lời

由于您正在使用 IHttpClinetFactory(假设您也正在使用 Typed Client),您可以创建自己的 HttpMessageHandler这将在您的 Typed Client 发出任何请求之前触发,并通过 DI 将其与您的 typed client 链接,如下所示:

services.AddHttpClient()
.AddHttpMessageHandler();

hiện hữu TokenHandler 中,您可以检查请求的 header 中是否包含 token 。如果不检查缓存(Memory Cache)中的可用 token ,则验证 token 的生命周期。

如果token过期或者缓存中没有这样的token,则颁发一个新的并存入缓存。

我确信有更好的方法,但我会这样做。


Để ý:如果您的应用程序分布在多个服务器上,则使用 Distributed CacheCòn hơn là Memory Cache .您可以通过 DI 轻松添加。


làm mới:

您可以像这样注册您的处理程序:

services.AddTransient();

关于asp.net-core - 使用 IHttpClientFactory.Net Core 使用外部 API 时在何处存储访问和刷新 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56208011/

hai mươi bốn 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com