我正在iPhone应用程序中设置OAuth授权。我想通过OAuth快速获取令牌。起初我无法成功print(credential.oauthToken)
。
通过跳转到Safari,我已经成功打开OAuth页面。也许我已经可以获取令牌了,但是我无法打印令牌并通过oauthToken请求API。
import UIKit
import OAuthSwift
import Alamofire
import SwiftyJSON
import KeychainAccess
..。
let oauthswift = OAuth2Swift(
consumerKey: "8xxxxxxxxxxxxxxxxxxx",
consumerSecret: "7xxxxxxxxxxxxxxxxxxx",
authorizeUrl: "https://xxxxxx.com/oauth/authorize",
accessTokenUrl: "https://xxxxxx.com/oauth/token",
responseType: "cxxx"
)
和
@IBAction func onTappedSyncButton(_ sender: UIButton) {
let keychain = Keychain(service: "myappname-token")
oauthswift.accessTokenBasicAuthentification = true
let handle = oauthswift.authorize(
withCallbackURL: URL(string: "my-xxxxxx-app://samplesite")!,
scope: "default",
state:"",
success: { credential, response, parameters in
// <<<<<<<<I can't get credential.oauthToken. why??<<<<<<
print(credential.oauthToken)
print("Sucesess")
// I save a token by keychainAccess frameworks
keychain["oauthToken"] = credential.oauthToken
},
failure: { error in
print(error.localizedDescription)
print("Failed")
}
)
}
我print(credential.oauthToken)
和print("Sucesess")
失败了。
我需要一个状态:“”吗?
可能不。我们不需要每次都需要状态。
我是否错误地保存到钥匙串?
可能不。如果我输入如下所示的钥匙串。我可以成功打印并保存在钥匙串中。
do {
try keychain.set("01234567", key: "oauthToken")
} catch {
print("aa")
}
我是否会误解oauthswift的代码?
可能不。我指的是oauthswift的官方网站。
有一个通过OAuth2.0授权的Instagram示例。
https://github.com/OAuthSwift/OAuthSwift
我是否需要像code_verifier
这样的PKCE代码
和code_challenge
?
可能不。我尝试生成PKCE。但它并没有改变。