7

是否可以在 JAVASCRIPT/AJAX/JQuery 中使用 oAuth 连接 Github

我在 php 和 node.js 中遇到过它的实现,但我需要在 js 中使用它。可能吗。有链接吗?

根据http://developer.github.com/v3/oauth/,我无法在 js 中实现它。

这是在 php 中实现的链接,请帮助我在 js/ajax/jquery 中实现相同的链接。

谢谢

4

4 回答 4

2

如果您真的想使用“仅 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

于 2018-10-11T11:24:23.080 回答
1

我自己只是在寻找同样的问题,显然这是不可能的。您请求的内容被称为隐式授权,您为 Github api 提供的链接指出:

不支持隐式授权类型

您仍然可以使用 cors 或 jsonp 访问它,这两种方法都被提及为使用 Github api(json-pcors)的方法,但除非您经过身份验证,否则速率限制为每小时 60 个请求https://developer.github.com /v3/#rate-limiting

编辑:

所以我做了一些进一步的阅读,如果你想将他们的 api 与网络浏览器脚本一起使用,你可以自己创建一个Personal Access Token,并将其范围定义为no scope。这将确保它只能读取您的公共信息。因此,您可以使用此令牌,而不必担心它会在网站上公开发布并且有人滥用它。

于 2018-03-05T17:06:23.793 回答
1

不可以,出于安全原因,您不能仅使用客户端代码登录。这是为了保护客户端密码。

您可以创建一个简单的服务器端应用程序来保护您的代码。例如,看看https://github.com/prose/gatekeeper

于 2017-05-19T10:52:42.010 回答
0

我遇到了同样的问题,并制作了一个 Netlify 函数来处理后端,因此它是无服务器的。

这是回购:https ://github.com/cadbox1/github-oktokit-oauth-netlify

于 2020-04-06T12:58:21.720 回答