来自第三方的 Android/iOS OAuth 2.0 问题

问题描述 投票:0回答:1

我会将提供商的名字保留在我的帽子下。我认为 Android/iOS 有问题。

他们想要:

POST /oauth/authorize

使用一些参数(客户端密钥、重定向 URL 等)作为启动 oauth 流程的第一个调用。返回的响应带有位置标头,用于进入 html 页面进行登录。

这样,他们似乎希望我们打开浏览器将第一个 POST 发送到 /oauth/authorize。但我不认为有任何合理的方法可以通过 POST 在 Android 或 iOS 中打开浏览器。

我尝试在应用程序内发送初始帖子,并告诉 http 客户端不要进行重定向,然后尝试使用位置标头中的 url 打开浏览器,并尝试提供其他标头。他们没有记录该响应中的内容(事实上,文档指示 JSON 对象作为响应,但这并没有发生)。我也无法让它发挥作用。这确实显示了登录页面,但用户登录后,会导致错误(404)。我猜这是因为我没有提供它知道合作伙伴是谁所需的任何信息,因此无法找到应用程序捕获以获取令牌的重定向链接。

我已经测试过通过 adb 发送重定向链接,应用程序可以捕获它。确实如此。

我不想太快告诉他们他们的 oauth 实现已损坏,但感觉确实如此。

我的理解是 Android 和 iOS 都需要使用简单的 url 来启动外部浏览器。浏览器几乎肯定会将其作为 GET 发送。

雪上加霜的是,他们没有回复支持电子邮件或回电话。

我希望有人能够给我一种方法来完成这项工作或确认它已损坏。

android ios rest oauth-2.0
1个回答
0
投票

这是我如何让它工作的:

我设置了我的网络服务来返回一个 html 页面,其中包含一个包含帖子信息的表单,以及一行 js 来提交它。

我曾尝试通过 JavaScript 发布帖子,但将结果返回到浏览器很棘手。提交表单后,整个流程都是由浏览器完成的(确保js在浏览器中运行,我真的需要浏览器直接解析响应)。

© www.soinside.com 2019 - 2024. All rights reserved.