You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MVC应用中如何刷新DropBox令牌?

DropBox 刷新令牌实现(.NET MVC)

你已经通过授权码流程获取到了RefreshToken,接下来可以通过DropBox的OAuth2令牌刷新端点获取新的访问令牌,以下是完整实现代码:

1. 定义刷新令牌响应模型

public class OAuth2RefreshResponse
{
    [JsonPropertyName("access_token")]
    public string AccessToken { get; set; }
    
    [JsonPropertyName("token_type")]
    public string TokenType { get; set; }
    
    [JsonPropertyName("expires_in")]
    public int ExpiresIn { get; set; }
    
    // 部分场景下DropBox会返回新的刷新令牌,按需更新
    [JsonPropertyName("refresh_token")]
    public string RefreshToken { get; set; }
}

2. 刷新令牌核心方法

using System.Net.Http;
using System.Text;
using System.Text.Json;

public async Task<OAuth2RefreshResponse> RefreshDropBoxTokenAsync(string appKey, string appSecret, string refreshToken)
{
    var client = new HttpClient();
    
    // 构建请求表单参数
    var formData = new Dictionary<string, string>
    {
        { "grant_type", "refresh_token" },
        { "refresh_token", refreshToken },
        { "client_id", appKey },
        { "client_secret", appSecret }
    };
    
    var content = new FormUrlEncodedContent(formData);
    
    // 发送POST请求到DropBox令牌端点
    var response = await client.PostAsync("https://api.dropbox.com/oauth2/token", content);
    response.EnsureSuccessStatusCode();
    
    var responseContent = await response.Content.ReadAsStringAsync();
    return JsonSerializer.Deserialize<OAuth2RefreshResponse>(responseContent);
}

3. 业务逻辑中调用刷新方法

// 从你的配置存储中取出已保存的参数
var currentRefreshToken = Settings.RefreshToken;
var appKey = "你的AppKey";
var appSecret = "你的AppSecret";

try
{
    var refreshResponse = await RefreshDropBoxTokenAsync(appKey, appSecret, currentRefreshToken);
    
    // 更新存储的AccessToken
    Settings.AccessToken = refreshResponse.AccessToken;
    
    // 若返回新的RefreshToken,同步更新存储
    if (!string.IsNullOrEmpty(refreshResponse.RefreshToken))
    {
        Settings.RefreshToken = refreshResponse.RefreshToken;
    }
}
catch (HttpRequestException ex)
{
    // 处理刷新失败场景,比如令牌失效、用户取消授权等
    // 可添加日志记录或引导用户重新授权
}

关键注意事项

  • 必须在DropBox开发者控制台的OAuth2设置中开启离线访问,否则不会返回可用的刷新令牌。
  • 刷新令牌长期有效,但用户取消应用授权或令牌被吊销时,刷新会失败,需重新引导用户走授权流程。
  • 建议在AccessToken过期前(比如提前5分钟)自动触发刷新,避免业务流程中断。

内容的提问来源于stack exchange,提问作者Ann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 09:16:34