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

如何使用Octokit通过GitHub令牌正确获取当前登录用户名?

问题根因

你当前的代码拿不到正确用户名的核心原因是:Octokit.NET库所有发起网络请求的方法都是异步实现的,gitHubClient.User.Current()返回值是Task<User>类型的异步任务对象,你没有等待任务执行完成就直接打印,最终输出的是任务对象的类型信息,不是实际的用户数据。

修正步骤
  • 将控制台程序的入口方法改为异步签名,支持异步等待语法
  • 调用接口时添加await关键字,等待接口请求完成拿到实际的用户实体
  • 从返回的用户实体中读取Login属性,即为令牌对应的登录用户名
  • 补充基础的输入校验,避免空token引发运行时异常
修正后完整代码
// 异步程序入口
async Task Main()
{
    Console.WriteLine("Input your token: ");
    string? inputToken = Console.ReadLine()?.Trim();

    if (string.IsNullOrEmpty(inputToken))
    {
        Console.WriteLine("Error: Token cannot be empty");
        return;
    }

    var gitHubClient = new GitHubClient(new ProductHeaderValue("MyCoolFilesManager"));
    gitHubClient.Credentials = new Credentials(inputToken);

    // 等待异步请求返回用户信息
    var currentUser = await gitHubClient.User.Current();
    // 输出登录用户名
    Console.WriteLine($"Current login: {currentUser.Login}");
}
额外说明
  • 你使用的GitHub个人访问令牌需要开启read:user权限,否则请求会返回403权限不足错误
  • 令牌不要硬编码在代码中,也不要提交到代码仓库,避免凭证泄露
  • 如果使用细粒度令牌,需要给用户信息配置对应的只读权限即可,不要授予多余权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 15:27:14