TinyKeychain 1.0.0

TinyKeychain 1.0.0

Swain Molster维护。



  • 作者:
  • Swain Molster

TinyKeychain

Travis CI pod Carthage compatible Swift 4.0 platforms license

一个Swift语言的,类型安全且易于使用的密钥链包装器,可以存储任何可以被编码的对象(Codable)。

使用方法

首先,设置好您的对象。

TinyKeychain旨在存储对象,这些对象必须是编码过的(如这个例子所示)

struct MyToken: Codable {
    let fullToken: String
}

创建一个Keychain实例。由于Keychain实例不持有可变状态,因此我们建议您在Keychain上创建静态属性实例,以便可以使用Swift的句点语法访问它们,如下所示

extension Keychain {
    static let `default` = Keychain(group: "my.keychain.access.group")
}

将对象存储到密钥链或从密钥链中检索对象的唯一方法是通过使用Keychain.Key对象。这些对象与Codable对象类型相关联,并且也不持有可变状态。我们建议您同样通过点语法使其可访问

extension Keychain.Key {
    static var authToken: Keychain.Key<MyToken> {
        return Keychain.Key<MyToken>(rawValue: "auth.token.key", synchronize: true)
    }
}

一旦您有一个Keychain实例和一个用于查询的Key,就可以开始使用了。Keychain实例可以像这样使用索引器

// Store
Keychain.default[.authToken] = MyToken(fullToken: "sample.token")

// Retrieve
let fullToken = Keychain.default[.authToken]?.fullToken

// Delete
Keychain.default[.authToken] = nil

或者,您可以使用完整的API,并实现一些错误处理

// Store
let token = MyToken(fullToken: "sample.token")
switch Keychain.default.storeObject(token, forKey: .authToken) {
    case .success:
        print("Woohoo!")
    case .error(let error):
        print("Bummer! \(error.description)"
}

// Retrieve
switch Keychain.default.retrieveObject(forKey: .authToken) {
    case .success(let object):
        print("Woohoo! Token: \(object.fullToken)")
    case .error(let error):
        print("Bummer! \(error.description)")
}

// Delete
switch Keychain.default.deleteObject(forKey: .authToken) {
    case .success:
        print("Woohoo!")
    case .error(let error):
        print("Bummer! \(error.description)")
}

获取TinyKeychain!

CocoaPods

pod 'TinyKeychain'

Carthage

github 'smolster/TinyKeychain'