首页 > 解决方案 > OAuthSwift - 弹出 Safari 视图,不跳转到 Safari

问题描述

我正在使用 OAuthSwift 和 Alamofire 发出 OAuth2 请求,一切正常,但我想让 UX 更好一点:当用户点击 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")
            }
        }
    }

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

我读了一些关于authorizeURLHandlerforoauthswift但我没能理解如何使用它。

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

标签: swiftoauth-2.0alamofire

解决方案


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

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

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


推荐阅读