首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASWebAuthenticationSession in MacOS 10.15 (Catalina)

ASWebAuthenticationSession in MacOS 10.15 (Catalina)
EN

Stack Overflow用户
提问于 2019-10-03 16:08:55
回答 2查看 1.2K关注 0票数 4

我正在尝试在MacOS 10.15中实现新的MacOS,我对callbackURLScheme感到有点困惑。

ASWebAuthenticationSession的头文件说:

回调URL通常有一个自定义的URL方案。要使应用程序接收回调URL,它需要在其Info.plist中注册自定义URL方案,或者在初始化器中将该方案设置为callbackURLScheme参数。

所以我初始化如下:

代码语言:javascript
复制
self.webAuthSession = [[ASWebAuthenticationSession alloc] initWithURL:self.authURL
                                                    callbackURLScheme:@"myurlscheme://"
                                                    completionHandler:^(NSURL * _Nullable callbackURL, NSError * _Nullable error) {

}];

我试图访问的oauth提供程序不支持自定义URL方案,因此我将其设置为重定向到web地址,而后者反过来又重定向到我的URL方案。

因此,在我的MacOS应用程序中单击Login之后,Safari提供了一个允许我登录该服务的窗口。成功登录后,重定向就会发生,但是网页只会转到屏幕上,上面写着

Safari无法打开指定的地址。

我可以看到地址是myurlscheme://?code=1234567890abcdefgetc...,这是正确的,但它显然没有调用ASWebAuthenticationSession回调。

如果我将URL方案添加到plist中,那么safari窗口将显示一个提示,询问您是否想在my中打开它。

我知道我可以从App的application:openURLs:方法中获取代码,但是这是很复杂的,它有一个不必要的提示供用户单击,并且还打开了ASWebAuth... safari窗口。所有这些都应该通过回调自动完成。

激活回调的唯一方法是关闭safari窗口,在这种情况下,它会以错误的方式调用。

EN

回答 2

Stack Overflow用户

发布于 2019-11-27 12:19:10

我刚刚回到这里再试一次,它似乎在MacOS、10.15.110.15.2 beta上运行得很好。

我注意到callbackURLScheme参数不能包含://

我无法在10.15上再次测试它,但是现在我很高兴使用它,前提是10.15上的每个人都会更新为10.15.1

票数 4
EN

Stack Overflow用户

发布于 2020-03-26 21:41:40

达伦就在MacOS中,您必须从callbackURLScheme中删除://。无论您://或不工作,iOS都可以正常工作。然而,在MacOS催化剂中似乎存在一个bug。我的应用程序在我登录后会变得更专注,但不会得到回调。还没找到解决办法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58223030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档