使用 API 在 GitHub 存储库中的 Javascript 中创建文件时的授权
Authorization when creating a file in Javascript in a GitHub repo using API
我的目标是创建一个带有 GitHub 个带有简单按钮的页面的静态页面。
当我按下这个按钮时,我想在同一个存储库中创建一个文件,在用于 GitHub 个页面的同一个分支中。
我阅读了一些关于在创建文件的获取请求中使用授权令牌的内容,所以我创建了我的令牌,并将其放入 GitHub 页面的 index.html用于访问存储库。
很快我收到一封来自 GitHub 的电子邮件,告诉我这个令牌已被撤销。
政策描述如下:https://github.blog/2015-02-05-keeping-github-oauth-tokens-safe/
我现在的问题是:我怎样才能完成这个任务?
我使用的片段如下:
async function createNewFileFunction() {
const user = { name: 'XXX', surname: 'YYY' };
const token = 'ghp_abcdefghijklmnopqrstuvwxyz1234567890';
const api_url = "https://api.github.com/repos/my_account/my_repo/contents/test.txt?ref=gh-pages";
try {
const response = await fetch(api_url, {
method: 'POST',
headers: {
'Authorization': `token ${token}`,
'Content-Type': 'application/json;charset=utf-8'
},
body: JSON.stringify(user)
}
);
console.log(await response.json());
} catch (error) {
console.log('Request Failed', error);
}
}
您将令牌放在 index.html 文件中,这意味着全世界都可以看到令牌。这就是为什么您在公开令牌时收到 GitHub 消息的原因。
GitHub 页面不支持后端代码。这意味着一切都是 public。您不能使用 GitHub 页面来支持需要令牌的方法。页面中的代码在用户的浏览器中执行。您将需要实施后端代码或使用 GitHub 身份验证。
后端代码可以是 Web 服务器、AWS Lambda 之类的云功能或其他几种服务。但是,如果您不使用授权,这会存在安全漏洞,因为任何人都可以调用您的后端端点。
查看这些链接以进行 GitHub 身份验证。
我的目标是创建一个带有 GitHub 个带有简单按钮的页面的静态页面。
当我按下这个按钮时,我想在同一个存储库中创建一个文件,在用于 GitHub 个页面的同一个分支中。
我阅读了一些关于在创建文件的获取请求中使用授权令牌的内容,所以我创建了我的令牌,并将其放入 GitHub 页面的 index.html用于访问存储库。
很快我收到一封来自 GitHub 的电子邮件,告诉我这个令牌已被撤销。
政策描述如下:https://github.blog/2015-02-05-keeping-github-oauth-tokens-safe/
我现在的问题是:我怎样才能完成这个任务?
我使用的片段如下:
async function createNewFileFunction() {
const user = { name: 'XXX', surname: 'YYY' };
const token = 'ghp_abcdefghijklmnopqrstuvwxyz1234567890';
const api_url = "https://api.github.com/repos/my_account/my_repo/contents/test.txt?ref=gh-pages";
try {
const response = await fetch(api_url, {
method: 'POST',
headers: {
'Authorization': `token ${token}`,
'Content-Type': 'application/json;charset=utf-8'
},
body: JSON.stringify(user)
}
);
console.log(await response.json());
} catch (error) {
console.log('Request Failed', error);
}
}
您将令牌放在 index.html 文件中,这意味着全世界都可以看到令牌。这就是为什么您在公开令牌时收到 GitHub 消息的原因。
GitHub 页面不支持后端代码。这意味着一切都是 public。您不能使用 GitHub 页面来支持需要令牌的方法。页面中的代码在用户的浏览器中执行。您将需要实施后端代码或使用 GitHub 身份验证。
后端代码可以是 Web 服务器、AWS Lambda 之类的云功能或其他几种服务。但是,如果您不使用授权,这会存在安全漏洞,因为任何人都可以调用您的后端端点。
查看这些链接以进行 GitHub 身份验证。