uber-api - watchOS 6.2 上使用 ASWebAuthenticationSession 的 Uber API OAuth
问题描述
我正在尝试使用 watchOS 6.2 的新 OAuth 功能通过 Uber 的 API 进行身份验证ASWebAuthenticationSession
:
ASWebAuthenticationSession(url: uberUrl, callbackURLScheme: scheme) { (URL?, Error?) -> in {
print(callbackUrl, error)
if let url = callbackUrl {
let components = NSURLComponents(string: (url.absoluteString))
if let t = components?.queryItems?.filter({$0.name == "code"}).first?.value {
self.token = t
}
}
}
当我运行它时,手表上会出现一个可爱的小网络浏览器并提示输入“电子邮件或手机号码”,输入我的电子邮件后,单击“下一步”会弹出一个文本输入窗口,然后突然消失,让我回到电子邮件条目。随后单击“下一步”会弹出一个文本输入窗口,只允许我编辑电子邮件地址。密码永远不是一种选择。我从来没有完成关闭,即使出现错误也是如此。
如果我向下滚动到“使用 Google 登录”,那么会加载 Google 的登录页面,让我输入电子邮件和密码,然后执行完成块(我得到一个 nil 令牌大概是因为我的 Uber 帐户不是 Google 帐户)。
我怀疑 Uber 的登录网页存在问题,但除了观察到 Google 的登录网页似乎可以正常工作之外,我无法验证这一点。此外,我找不到callbackURLScheme
关于 watchOS 参数的文档。我在 plist 中创建了一个方案,就像使用 iOS 应用程序一样,但无法确认这是正确的过程。尽管如此,这并没有改变密码字段不会出现在优步的誓言登录页面上的事实。
此时在 StackOverflow 中搜索 watchOS 和 ASWebAuthenticationSession 不会产生任何结果。
现在还有其他人尝试这样做吗?有没有人成功过?我是否遗漏了一些重要的东西,或者这只是 Uber 的错误?
解决方案
推荐阅读
- java - 以函数和自定义对象收集器为参数进行分组
- python - 无法提取“移动”数据。终端显示列表 = ['', '', '', '', '', '', '', '', '']
- selenium - InvalidSelectorException:消息:无效选择器:指定了无效或非法选择器错误单击带有 Selenium 的 div ng-click 元素
- linux - 接收非阻塞套接字的正确方法是什么?
- javascript - 如何通过单击 jquery 中的按钮清除同位素搜索过滤器?
- android - 将 viewmodal livedata 发送到另一个具有 listadapter 的片段
- algorithm - 自下而上的堆分析
- javascript - 列堆叠条形图 HighCharts 中的向下钻取操作
- algorithm - 任何 DFS(深度优先搜索)树的算法 DFS 深度
- python - 如何在python中返回值后更新它