【问题标题】:GitHub OAuth in lualua 中的 GitHub OAuth
【发布时间】:2015-03-17 12:04:53
【问题描述】:

我正在为一个名为 Codea 的 ipad 应用程序开发 LUA 库。我正在尝试将 OAuth 用于 GitHub Gists。我无法弄清楚的唯一部分是如何通过代码获取 Auth 令牌。我在终端中使用 curl 为自己获取了一个令牌,但这对其他用户来说似乎需要做很多工作。

我已多次阅读 github api 文档,但我无法弄清楚如何以编程方式获取令牌。我试图复制我用来获取和发布要点的方法,但它似乎不起作用。我不确定如何传递用户名和密码。 我正在创建一个包含所需参数的表,然后将其编码为 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)

【问题讨论】:

  • 如果我能弄清楚如何获取 client_id 和 client_secret,我想我可以完成这项工作。我如何获得这些?
  • 这段代码无法编译,因为第一行的字符串没有关闭。

标签: github lua gist codea


【解决方案1】:

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

参见“OAuth changes coming”(2013 年 10 月,Tim Cleam - tclem):

从今天开始,我们将在 access_token 响应中返回授予的范围。
例如,如果您使用application/json mime 类型创建POST,您将看到授予范围的附加字段。

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

目前,这些范围将与您请求的相同,但我们正在朝着允许 GitHub 用户编辑其范围的功能集发展,从而有效地授予您的应用程序比您最初请求的更少的访问权限.
您应该意识到这种可能性并相应地调整您的应用程序行为。

需要注意和牢记的一些事项:

  • 大多数使用 GitHub OAuth 来识别用户的第三方应用程序通过从请求应用程序可能逃脱的最低访问权限开始,在采用方面取得了最大的成功。
    像没有范围或只有user:email 这样的东西非常理智。

  • 处理用户选择授予您的访问权限少于您最初请求的访问权限的错误情况非常重要。
    现在我们在access_token 响应中显示了已授予的范围,应用程序可以警告或以其他方式与其用户沟通,他们将看到功能减少或无法执行某些操作。

  • 应用程序始终可以通过流程再次将用户送回以获得额外权限,但不要忘记用户始终可以拒绝。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-03
    • 2017-07-08
    • 1970-01-01
    • 2019-09-02
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多