OAuthSwift - 弹出 Safari 视图,不跳转到 Safari

Posted

技术标签:

【中文标题】OAuthSwift - 弹出 Safari 视图,不跳转到 Safari【英文标题】:OAuthSwift - pop-up safari view, not jump to Safari 【发布时间】:2020-09-22 10:03:08 【问题描述】:

我正在使用 OAuthSwift 和 Alamofire 发出 OAuth2 请求,一切正常,但我想让用户体验更好一点:当用户点击 OAuthSwift 中的日志时,会跳转到 Safari 收集凭据并验证用户身份,然后跳回应用程序。我想在应用程序中显示该屏幕,就像登录屏幕上的弹出视图控制器一样。

let oauthswift = OAuth2Swift(consumerKey:        Credentials.client_id,
                                 consumerSecret:     Credentials.client_secret,
                                 authorizeUrl:       ZohoURL.authTokenUrl,
                                 responseType:       "code")
    
    let _ = oauthswift.authorize(withCallbackURL: ZohoURL.redirect_uri, scope: "", state: "")  (result) in
        
        switch result 
        case .success(_):
            print("success")
        case .failure(_):
            print("error")
            
        
    

代码用于身份验证(不包括处理响应,与此问题无关)

我为oauthswift 阅读了一些关于authorizeURLHandler 的内容,但我不明白如何使用它。

如果可以的话,我愿意接受另一个实现或可可豆荚。

【问题讨论】:

【参考方案1】:

ios 应用程序的推荐选项是使用 ASWebAuthenticationSession 弹出窗口,感觉是集成的。

AppAuth 库会自动执行此操作,因此我打算从他们那里借鉴一些想法。

如果有帮助,请查看我的这些资源,也许可以从在模拟器上运行我的代码示例开始。希望它能给你一些有用的东西来比较。

iOS Code Sample Blog Post

【讨论】:

以上是关于OAuthSwift - 弹出 Safari 视图,不跳转到 Safari的主要内容,如果未能解决你的问题,请参考以下文章

如何检查是不是存在 SpringBoard 警报/Safari 浏览器弹出窗口?

OAuthSwift 的自定义标头

在 POST 之前从 OAuthSwift 中删除标头

HTML5 表单验证看不到消息弹出 Mac Safari

OAuthSwift错误-10尝试连接到Twitter时

Eventbrite 重定向 URI iOS OAuthSwift