如何为用户即服务器 oAuth 实例化 Octokit?

How to instantiate Octokit for user-as-a-server oAuth?

我希望我的 GitHub 应用代表用户执行操作,例如创建问题。

我正在以这种方式验证我的用户:

const { createOAuthAppAuth } = require('@octokit/auth-oauth-app');

const auth = createOAuthAppAuth({
  clientType: 'oauth-app',
  clientId: clientGithubID,
  clientSecret: clientSecretGithub,
});

const userAuthenticationFromWebFlow = await auth({
  type: 'oauth-user',
  code,
  state: userId,
});

// console.log(useAuthenticationFromWebFlow)
// {
//   "type": "token",
//   "tokenType": "oauth",
//   "clientType": "oauth-app",
//   "clientId": "Iv1.CLIENTID",
//   "clientSecret": "CLIENTSECRET",
//   "token": "ghu_bunchofchars",
//   "scopes": []
// }

看来我拿到的token不错

现在的问题是,当我稍后尝试在我的代码中创建一个 Octokit 时,这不起作用

octokit = new Octokit({
  authStrategy: userAuthenticationFromWebFlow,
});
await octokit.issues.createComment({...props})

创建 Octokit 实例的正确方法是什么?

谢谢!

所以我刚刚找到了答案,

可能对某人有帮助。

const { createOAuthAppAuth } = require('@octokit/auth-oauth-app');

    octokit = new Octokit({
      authStrategy: createOAuthAppAuth,
      auth: userAuthenticationFromWebFlow.token,
    });

而且有效!