是否可以在 JAVASCRIPT/AJAX/JQuery 中使用 oAuth 连接 Github
我在 php 和 node.js 中遇到过它的实现,但我需要在 js 中使用它。可能吗。有链接吗?
根据http://developer.github.com/v3/oauth/,我无法在 js 中实现它。
这是在 php 中实现的链接,请帮助我在 js/ajax/jquery 中实现相同的链接。
谢谢
是否可以在 JAVASCRIPT/AJAX/JQuery 中使用 oAuth 连接 Github
我在 php 和 node.js 中遇到过它的实现,但我需要在 js 中使用它。可能吗。有链接吗?
根据http://developer.github.com/v3/oauth/,我无法在 js 中实现它。
这是在 php 中实现的链接,请帮助我在 js/ajax/jquery 中实现相同的链接。
谢谢
如果您真的想使用“仅 JavaScript”连接到 Github,或任何其他不支持 OAuth2“隐式”授权类型/流的 OAuth 提供程序,并且您不介意使用基于 OAuth 的 Web 服务,这将大大简化一切对于 < 10 行,您可以尝试使用 OAuth.io ( https://oauth.io )。
OAuth.io 提供了一个开源的 Javascript 库:https ://cdn.rawgit.com/oauth-io/oauth-js/c5af4519/dist/oauth.js 。该库与 OAuth.io 服务器通信,该服务器使用您的 Github(OAuth 服务器)客户端 ID/客户端密码进行配置,因此它充当您的浏览器和 Github(或任何 OAuth 提供者)之间的中介,使其能够完成OAuth2“授权码”授权类型/流程。
然后代码很简单:
OAuth.popup('github').then(github => {
console.log('github:', github);
// You can use the github object to
// perform any HTTP get/post to Github API endpoints
github.get('/user').then(data => {
console.log('self data:', data);
})
});
参考:https ://coderwall.com/p/sjbwcq/javascript-github-social-login-button-for-oauth
我自己只是在寻找同样的问题,显然这是不可能的。您请求的内容被称为隐式授权,您为 Github api 提供的链接指出:
不支持隐式授权类型
您仍然可以使用 cors 或 jsonp 访问它,这两种方法都被提及为使用 Github api(json-p,cors)的方法,但除非您经过身份验证,否则速率限制为每小时 60 个请求https://developer.github.com /v3/#rate-limiting
编辑:
所以我做了一些进一步的阅读,如果你想将他们的 api 与网络浏览器脚本一起使用,你可以自己创建一个Personal Access Token,并将其范围定义为no scope。这将确保它只能读取您的公共信息。因此,您可以使用此令牌,而不必担心它会在网站上公开发布并且有人滥用它。
不可以,出于安全原因,您不能仅使用客户端代码登录。这是为了保护客户端密码。
您可以创建一个简单的服务器端应用程序来保护您的代码。例如,看看https://github.com/prose/gatekeeper
我遇到了同样的问题,并制作了一个 Netlify 函数来处理后端,因此它是无服务器的。
这是回购:https ://github.com/cadbox1/github-oktokit-oauth-netlify