【问题标题】:OAuth for server side apps服务器端应用程序的 OAuth
【发布时间】:2013-05-15 20:31:24
【问题描述】:

我需要与只支持 OAuth2 的 API 交互。

问题是,我想编写一个纯粹的服务器端应用程序,它应该坐在那里,而不需要 GUI 每天轮询 API。

API 使我能够以编程方式获取应用程序令牌,但看起来我需要实现整个 GUI 流程才能获取后续访问令牌。这是因为我需要通过应用程序提供商基于 Web 的登录屏幕登录。

看起来我需要获取该访问令牌,并将其复制为我的服务器端凭据,并在其中重新创建它。如果它过期或变坏,我将需要通过 GUI 流程返回以获取我的服务器端访问令牌。

我的理解是否正确,因为这感觉很笨拙?

具体来说:

我可以避免实施链接到应用程序提供商登录表单的流程吗?

这样做是否正确,我必须取消选择访问令牌并将其存储在我的服务器端应用程序中。我似乎无法控制它是否会过期?

我可以看到,例如Facebook 特别支持服务器端和客户端流。我想知道我是否在 OAuth 2 的这个特定实现中遇到了限制?

【问题讨论】:

  • 你的问题不是很清楚。你能添加更多关于你实际需要的细节吗?您想了解 OAuth 2 流程吗?
  • 添加了一些具体问题。我了解流程,但它似乎是为用户执行的客户端交互而设计的,而我希望通过 OAuth 2 在无头服务器端应用程序中进行集成。

标签: oauth oauth-2.0


【解决方案1】:

我不知道您实际上希望应用程序如何运行,但有一点是肯定的 - 您必须输入一次用户凭据。

一旦您进行身份验证和授权(关于自动身份验证有很多关于 SO 的未解决问题),您的应用不仅会获得访问令牌,还会获得 刷新令牌。 刷新令牌正是您在用例中所需要的。您可以将其存储在服务器端 - 刷新令牌没有到期时间。它一直存在到用户明确撤销权限。

对于任何 OAuth 服务提供商,都有一个令牌交换端点,您可以在其中将刷新令牌交换为(刷新令牌 + 访问令牌)对。因此,在后端(您的服务器),您可以随时点击此端点 - 获取短期访问令牌并执行您需要的操作。这样可以节省您每次都遵循 GUI 流程的所有工作。

查看此链接 - https://developers.google.com/accounts/docs/OAuth2WebServer#offline

编辑 - 阅读您的评论后进行了一些更改。您只需要知道如何在您的应用中使用刷新令牌。

【讨论】:

    【解决方案2】:

    我发现我在这个问题中提出的问题的典型解决方案是使用 XAuth。

    许多提供商(例如 Twitter 和我目前正在使用的应用程序)支持 XAuth 以提供简化的流程,而无需基于用户界面的身份验证。

    What is the difference among BasicAuth,OAuth and XAuth?

    【讨论】:

    • 哦,感谢本杰明分享此链接!我想我也需要更新自己。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多