五分钟接入 Access Token 自动管理

对接需要 Access Token 的第三方 API 时,手动管理令牌的获取、缓存与刷新既繁琐又容易出错。本文演示 HttpAgent 的 Access Token 自动管理,五分钟完成接入。
HttpAgent 团队2026 年 8 月 1 日2 分钟读完

对接微信、飞书、钉钉等开放平台时,绝大多数接口都要求携带 Access Token。而令牌通常有有效期,过期后接口会返回 401,此时需要重新获取令牌并重试——这套逻辑如果手写,每个项目都要重复一遍。

HttpAgent 内置 Access Token 自动管理:自动获取、自动注入、过期自动刷新、401 自动重试,全程无感。

1. 实现令牌提供器#

只需实现 IHttpAccessTokenProvider 接口,告诉框架令牌从哪里来:

cs
public class MyAccessTokenProvider : IHttpAccessTokenProvider{    private readonly string _clientId = "your-app-id";    private readonly string _clientSecret = "your-app-secret";    public async Task<HttpAccessToken> GetAsync(HttpAccessTokenContext context, CancellationToken cancellationToken = default)    {        // 调用第三方授权接口获取令牌(此处省略具体实现)        var token = await FetchTokenAsync(_clientId, _clientSecret);        return new HttpAccessToken { Value = token.access_token, ExpiresInSeconds = token.expires_in };    }}

2. 注册服务与提供器#

cs
builder.Services.AddHttpRemote();builder.Services.AddSingleton<IHttpAccessTokenProvider, MyAccessTokenProvider>();

3. 直接调用接口#

此后所有请求都会自动携带令牌:

cs
var result = await httpRemoteService.GetAsStringAsync("https://api.example.com/user/info");

框架会在令牌过期前自动刷新、在收到 401 时自动重试一次,无需任何额外代码。

内置提供器#

针对常见平台,HttpAgent 还内置了开箱即用的提供器:

  • 微信开放平台WeChatAccessTokenProvider
  • Furion 框架FurionAccessTokenProvider(自动与框架配置集成)。

小结#

令牌获取、缓存、刷新、注入、重试全部交给框架,业务代码只关心业务本身。多节点部署时框架还提供了分布式令牌共享方案,详见文档中的「多节点集群部署」小节。

相关文章

压测实战:HttpAgent StressTestHarness 使用指南上线前的性能验证不可或缺。本文演示 HttpAgent 内置压力测试工具 HttpStressTestHarnessBuilder 的完整用法:并发、请求数与测试报告。2026 年 7 月 10 日 · HttpAgent 团队 · 约 1 分钟读完
从 cURL 命令到 HttpAgent:一行导入请求Chrome DevTools 复制出来的 cURL 命令,可以直接粘贴给 HttpAgent 发起请求。本文介绍 cURL 解析能力与扩展自定义选项的方法。2026 年 6 月 25 日 · HttpAgent 团队 · 约 1 分钟读完