如何为用户即服务器 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,
});
而且有效!
我希望我的 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,
});
而且有效!