octokit-rest node-js:授权用户名和密码获取“传递给createTokenAuth的令牌不是字符串”错误

问题描述

编辑:尽管试图使其工作5个小时以上,但我只是发现实际上不赞成我在下面描述的方法。落入我陷阱的任何人都应该改用访问令牌(https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token),然后再使用(https://octokit.github.io/rest.js/v18#authentication

在使用带有节点js的octokit rest软件包来验证github用户时,该指南似乎非常简单

const { Octokit } = require('@octokit/rest');

const octokit = new Octokit({
 auth: {
   username: this_username,password: this_password,on2fa () {
    return prompt('Enter code')
   }
  }
});

但是,当我在节点js中运行它(将this_username和this_password设置为我的github用户名密码)时,出现以下错误

Uncaught Error: [@octokit/auth-token] Token passed to createtokenAuth is not a string
    at Object.createtokenAuth (D:\github\sos\collector-dev\web\node_modules\@octokit\auth-token\dist-node\index.js:39:11)
    at new Octokit (D:\github\sos\collector-dev\web\node_modules\@octokit\core\dist-node\index.js:115:32)
    at new _a (D:\github\sos\collector-dev\web\node_modules\@octokit\core\dist-node\index.js:167:30)
    at new OctokitWithDefaults (D:\github\sos\collector-dev\web\node_modules\@octokit\core\dist-node\index.js:147:9)

有趣的是,当我故意输入错误密码时,我会收到相同的错误消息。

关于我错过的任何步骤的任何想法吗?还是我误解了octokit要求的用户名密码

解决方法

如前所述,

是一种已弃用的方法,不建议使用它。尽管如此,我仍在https://github.com/octokit/rest.js/discussions/1881#discussioncomment-81110上找到了有关如何使其工作的讨论(直到Github决定绝对关闭):

const octokit = new Octokit({
  authStrategy: createBasicAuth,auth: {
    username: this_username,password: this_password
  }
});