【问题标题】:OAuth Callback procedure for mobile devices移动设备的 OAuth 回调过程
【发布时间】:2011-01-08 11:16:09
【问题描述】:

我正在为 BlackBerry 移动设备设计 Netflix 应用程序。我目前正在研究 OAuth。我现在可以在我的应用程序的嵌入式浏览器字段中生成一个 Netflix 登录页面。

用户登录后,Netflix 会将用户从登录页面发送到指定的回调 url。回调 url 还将包含一个授权令牌,然后需要将其发送回 Netflix。

我的问题是:我应该如何在移动设备上执行此操作?是否制定了程序?我不确定如何从回调 URL 中提取授权令牌并将其发送回我的应用程序。根据我的研究,Netflix 似乎不会为用户提供 PIN/验证器,然后再输入应用程序...

有人有什么想法吗?

谢谢...

【问题讨论】:

  • 哪个移动设备???对于黑莓,您可以使用 j2me-oauth

标签: url blackberry callback oauth netflix


【解决方案1】:

有两种方法可以处理移动设备上的回调。第一个是将oauth_callback 的值设置为'oob'。如果您的设备无法接收回调,则会执行此操作。请参阅 OAuth 规范,第 2.1 节:

Temporary Credentials

使用“oob”应该会导致服务器 (Netflix) 显示一个验证码,然后用户将其键入您的应用程序以授权请求令牌。

如果您的设备支持,第二种方法是使用自定义 URI 方案。我知道在 iPhone 上,您可以使用分配给您的应用程序的自定义方案注册回调。有没有办法在黑莓上做到这一点?如果是这样,我会使用这种方法,因为它的用户体验要好得多。

【讨论】:

  • 感谢您的帮助,保罗。我认为我不能使用自定义 URI 方案。我尝试将 oauth_callback 设置为“oob”,在 Netflix 登录页面登录后,唯一出现的是“转到 Netflix”按钮,它把我带到了 Netflix 网站...
  • 嗨 behrk2。嗯,如果 BlackBerry 不支持自定义 URI 方案并且 Netflix 不支持越界回调,听起来您可能不得不接受 Netflix。您是否尝试过在他们的支持论坛上发帖,询问他们对无法接受回呼的设备有什么建议?
  • 顺便说一句,这里是 Netflix 论坛中 OAuth 主题的链接:developer.netflix.com/forum/read/27647
  • 看起来有人回复了您的帖子:developer.netflix.com/forum/read/64879 因此,如果他们只支持 OAuth 1.0(不是 1.0a),那么您对 ​​oob 配置就不走运了。我会听从他们在 Netflix 论坛上给你的建议。将回调 URL 设置为您托管的某个页面,该页面指示用户重新启动您的应用程序...在重新启动时,将请求令牌(现已授权)交换为访问令牌,您应该一切顺利。它很笨重,但不支持注册 uri 方案或 oob,这就是你真正能做的。
  • 坦率地说,我很惊讶他们不支持 1.0a。他们有超过 6 个月的时间来做这件事。您绝对可以向用户显示一个按钮,说明他们已授权令牌。当他们单击按钮时,您会尝试将请求令牌交换为访问令牌。如果失败,您必须重新开始该过程(请求访问令牌,将用户定向到授权端点等)。我同意按钮方法比重新启动应用程序的用户体验更好。
【解决方案2】:
【解决方案3】:

与其嵌入浏览器字段,不如让移动应用与 netflix 进行所有必要的握手,从而创建无缝(即无浏览器)的用户体验。您需要设置一个公共域服务器作为 OAuth 的回调主机,并让它协商您的新会话密钥/秘密密钥并将其传递回您的设备。 一直以来,设备都需要与您的公共服务器保持开放的 http 连接,以便最终接收凭据并继续直接从 netflix 请求用户数据。 整个往返时间不应超过大约 15 秒,因此 HTTP 超时不应成为问题。 您需要首先研究(即“屏幕抓取”)netflix 登录 html 页面以提取必要/相关的 html 表单参数名称等。 祝你好运。

【讨论】:

  • 这个想法让我很感兴趣。我过去曾考虑过,但不确定如何实施。会试一试。谢谢!
  • 这种方法不违背 OAuth 的主要目的之一——防止用户需要将他们的用户名/密码传递给第三方服务器吗?
猜你喜欢
  • 1970-01-01
  • 2012-06-22
  • 2011-07-03
  • 1970-01-01
  • 2020-03-13
  • 2023-03-10
  • 2016-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多