测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2016年10月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 evermeer 维护。
依赖关系 | |
Alamofire | >= 0 |
KeychainAccess | >= 0 |
使用 Alamofire 实现的 iOS OAuth2 的 Swift 实现。
这个库很大程度上受到 crousselle 的 SwiftOAuth2 仓库 的启发。
AlamofireOauth2 依赖于 Alamofire 和 KeychainAccess。
'AlamofireOauth2' 现在可以通过依赖管理器 CocoaPods 获取。您需要使用 CocoaPods 版本 0.36。目前可以通过执行以下命令来安装
[sudo] gem install cocoapods
我已经转到 Swift 2。如果您想使用 AlamofireOauth2,请通过 podfile 命令获取该版本
use_frameworks!
pod "AlamofireOauth2", '~> 1.0'
CocoaPods 0.36 版本会将所有使用的 pods 制成动态框架。因此,它只支持 iOS 8.0 或更高版本。当使用框架时,您也必须在 swift 文件的顶部添加一个导入,如下所示
import AlamofireOauth2
如果您需要支持比 iOS 8.0 更旧的版本,您也可以将包含 4 个类的 AlamofireOauth2 文件夹直接复制到您的应用中。除此之外,您还需要嵌入 Alamofire 和 KeychainAccess 库
1) 将仓库克隆到工作目录
2) 使用 CocoaPods 管理依赖项。Pods 的设置很简单,并通过 Ruby Gem 进行分发。按照网站上的简单说明进行设置。设置完成后,从 AlamofireOauth 的顶级目录运行以下命令以下载 AlamofireOauth 的依赖项
pod install
3) 在 Xcode 中打开 AlamofireOauth.xcworkspace
4) 在 https://developer.wordpress.com/docs/oauth2/ 创建您自己的 clientId 和 clientSecret
5) 在 ViewController 中的 wordpressOauth2Settings 对象中设置 clientId 和 clientSecret
然后就可以使用了!
以下是使用 OAuth2 认证对 WorPress API 执行简单调用的示例代码
class ViewController: UIViewController {
@IBOutlet weak var result: UITextView!
@IBAction func startWordpressOauth2Test(sender: AnyObject) {
self.result.text = ""
UsingOauth2(wordpressOauth2Settings, self, { token in
WordPressRequestConvertible.OAuthToken = token
Alamofire.request(WordPressRequestConvertible.Me())
.responseJSON { (request, response, json, error ) -> Void in
self.result.text = "\(json)"
println("JSON = \(json)")
}
}, {
println("Oauth2 failed")
})
}
}
// Create your own clientID and clientSecret at https://developer.wordpress.com/docs/oauth2/
let wordpressOauth2Settings = Oauth2Settings(
baseURL: "https://public-api.wordpress.com/rest/v1",
authorizeURL: "https://public-api.wordpress.com/oauth2/authorize",
tokenURL: "https://public-api.wordpress.com/oauth2/token",
redirectURL: "alamofireoauth2://wordpress/oauth_callback",
clientID: "????????????",
clientSecret: "????????????"
)
// Minimal Alamofire implementation. For more info see https://github.com/Alamofire/Alamofire#crud--authorization
public enum WordPressRequestConvertible: URLRequestConvertible {
static var baseURLString: String? = wordpressOauth2Settings.baseURL
static var OAuthToken: String?
case Me()
public var URLRequest: NSURLRequest {
let URL = NSURL(string: WordPressRequestConvertible.baseURLString!)!
let mutableURLRequest = NSMutableURLRequest(URL: URL.URLByAppendingPathComponent("/me"))
mutableURLRequest.HTTPMethod = "GET"
if let token = WordPressRequestConvertible.OAuthToken {
mutableURLRequest.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
}
return mutableURLRequest
}
}
AlamofireOauth2遵循MIT 3许可协议。更多信息请参阅LICENSE文件。
也请参阅我的其他开源iOS库