3.72禁用 Access Token 自动管理

创建于 2026 年 8 月 17 日约 1 分钟读完

框架内置了 Access Token 自动管理功能,只需实现 IHttpAccessTokenProvider 接口,并在 GetAsync 方法中编写获取 Access Token 的逻辑即可。通常情况下,获取 Access Token 需要借助独立的 HTTP 请求,而若在 GetAsync 内部直接使用 IHttpRemoteService 发送请求,则会因触发自动管理机制而陷入递归死循环。此时,需通过 .WithoutTokenManagement() 显式禁用当前请求的 Access Token 自动管理,避免循环调用。

cs
public class CustomHttpAccessTokenProvider(IHttpRemoteService httpRemoteService): IHttpAccessTokenProvider{    /// <inheritdoc />    public async Task<HttpAccessToken?> GetAsync(CancellationToken cancellationToken)    {        var serverToken = await httpRemoteService.SendAsAsync<YourServerToken>(HttpRequestBuilder.Post("https://furion.net")                .SetJsonContent(new { username = "furion", password = "your-password"})                .WithoutTokenManagement());  // 跳过 Token 管理,避免递归调用(声明式请求使用 [SuppressTokenManagement])        return new HttpAccessToken(serverToken.Token, serverToken.ExpiresAt)    };}