GitHub OAuth 在 Lua 中的实现

我正在为一个名为Codea的iPad应用程序编写一个LUA库。 我正在尝试使用OAuth来获取GitHub Gists的权限令牌。我唯一不能弄清楚的部分是如何通过代码获取Auth令牌。我在终端中使用curl获取了自己的令牌,但这似乎对其他用户来说太麻烦了。

我已经多次阅读了GitHub API文档,但我无法弄清楚如何通过编程方式获取令牌。我尝试复制我用于获取和发布Gist的方法,但似乎没有起作用。我不知道如何传递用户名和密码。 我正在创建一个包含所需参数的表,然后将其编码为json。我尝试的所有内容都会出现404错误或500错误。在此先感谢大家。

local url = “https://api.github.com/authorizations”
local d = {}
d.scopes = {“gist”}
d.note = “AutoGist Codea”
projectAuth = json.encode(d)

opts = { data = projectAuth }
opts.method = “POST”
opts.headers = {Authorization =“basic” ..“username:password”}
http.request (url, successCallback,failedCallback,opts)
点赞
用户6309
用户6309

Scope即将推出,但仅在2013年第四季度。

请参见「OAuth changes coming」(由Tim Cleam - tclem于2013年10月发布):

从今天开始,我们会在access_token响应中返回授权作用域。

举个例子,如果您正在使用application/json类型的POST请求,您将会看到额外的授权作用域字段。

{
  "access_token":"e72e16c7e42f292c6912e7710c838347ae178b4a",
  "scope":"repo,gist",
  "token_type":"bearer"
}

就目前而言,这些作用域将与您请求的相同。但是,我们正在朝着一种功能集合的方向发展,允许GitHub用户编辑他们的作用域,从而有效地授权您的应用程序比您最初请求的更少的访问权限。

您应该了解这种可能性并相应地调整应用程序行为。

注意事项:

  • 大多数使用GitHub OAuth来识别用户的第三方应用程序在采用时最佳的成功是:从请求应用程序可以尽可能少地使用的最小访问开始。

    一些像没有作用域或只有user:email之类的基本内容是非常理智的。

  • 处理用户选择授予的访问权限少于您最初请求的错误情况非常重要。

    现在我们在access_token响应中公布了授权作用域,应用程序可以警告或以其他方式与用户通信,告诉他们将看到降低的功能或无法执行某些操作。

  • 应用程序始终可以重新将用户发送到流程中以获得更多权限,但不要忘记用户始终可以拒绝。

2013-10-05 08:51:16