AlamofireOauth2 2.0.1

AlamofireOauth2 2.0.1

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2016年10月
SwiftSwift 版本3.0
SPM支持 SPM

evermeer 维护。



 
依赖关系
Alamofire>= 0
KeychainAccess>= 0
 

使用 Alamofire 实现的 iOS OAuth2 的 Swift 实现。

简介

这个库很大程度上受到 crousselle 的 SwiftOAuth2 仓库 的启发。

AlamofireOauth2 依赖于 AlamofireKeychainAccess

在您的应用中使用 AlamofireOauth2

'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 文件夹直接复制到您的应用中。除此之外,您还需要嵌入 AlamofireKeychainAccess

构建 AlamofireOaut2Test 示例

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

然后就可以使用了!

如何使用 AlamofireOauth

以下是使用 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库

  • EVReflection - 支持NSCoding、Printable、Hashable、Equatable和JSON的反射功能的Swift库
  • EVCloudKitDao - 简化访问苹果的CloudKit
  • EVFaceTracker - 计算设备相对于你脸的距离和角度,以模拟3D效果
  • EVURLCache - NSURLCache的子类,用于处理所有使用NSURLReques的web请求
  • AlamofireJsonToObject - 一个Alamofire扩展,使用EVReflection将JSON响应数据转换为Swift对象
  • AlamofireXmlToObject - 一个Alamofire扩展,使用EVReflection和XMLDictionary将XML响应数据转换为Swift对象
  • AlamofireOauth2 - 使用Alamofire实现的OAuth2
  • EVWordPressAPI - 使用AlamofireOauth2、AlomofireJsonToObjects和EVReflection实现的WordPress (Jetpack) API实现(工作中)
  • PassportScanner - 扫描护照上的MRZ代码并提取姓名、姓、护照号码、国籍、出生日期、失效日期和个人编号