我正在开始iOS开发。我创建一个使用GitHub授权的应用程序。在GitHub开发人员程序中注册新的OAuth应用程序时,必须输入授权回调URL。但是我的应用程序没有任何网站。我需要在此字段中指定什么?
答案 0 :(得分:1)
您可以使用深层链接。
您可以详细了解here
深层链接将尝试打开应用程序或将其重定向到它。网络浏览器或SFAuthenticationSession
将关闭浏览器并调用完成处理程序,您可以在其中检查响应代码而无需对深层链接进行任何实现。
要在应用程序中添加深层链接,请执行以下操作:
在为oauth生成URL时,您可以传递任何您想要的信息,在此示例中,我只是传递登录信息:
func getAuthenticateURL() -> URL {
var urlComponent = URLComponents(string: "https://github.com/login/oauth/authorize")!
var queryItems = urlComponent.queryItems ?? []
queryItems.append(URLQueryItem(name: "client_id", value: "YOUR_CLIENT_ID_HERE"))
queryItems.append(URLQueryItem(name: "redirect_uri", value: "APP_SCHEME_GOES_HERE://login"))
urlComponent.queryItems = queryItems
return urlComponent.url!
}
然后在需要登录时执行此操作:
import SafariServices
var authSession: SFAuthenticationSession?
func authenticate(with url: URL, completion: @escaping ((_ token: String?, _ error: Error?) -> Void)) {
authSession?.cancel()
authSession = SFAuthenticationSession(url: url, callbackURLScheme: nil, completionHandler: { url, error in
//get the token and call the completion handler
})
authSession?.start()
}
或在iOS 12上以相同方式使用ASWebAuthenticationSession
答案 1 :(得分:0)