auth0/SimpleKeychain

TouchID does not show up

marbetschar opened this issue · 2 comments

I've tried to implement A0SimpleKeychain in my project - but for some reason the TouchID does not show up. It seems like I'm not able to store anything in the Keychain - as the id changes every time I execute the app.

Here's my code:

var error: NSError?
let message = "Please login"
let keychain = A0SimpleKeychain()
var defaultAccount = keychain.stringForKey("default.account", promptMessage: message)

if defaultAccount == nil {
    let uuid = NSUUID().UUIDString.stringByReplacingOccurrencesOfString("-", withString: "", options: nil, range: nil).lowercaseString

    defaultAccount = NSString(string: uuid)

    let keychain = A0SimpleKeychain()
    keychain.useAccessControl = true
    keychain.defaultAccessiblity = .WhenPasscodeSetThisDeviceOnly
    keychain.setString(defaultAccount, forKey: "default.account")
}

println(split( defaultAccount ){ $0 == "$" })

What I'm doing wrong?

Hi @marbetschar,

Did you try setting useAccessControlto true and defaultAccessiblity before reading the value from the keychain?

var error: NSError?
let message = "Please login"

let keychain = A0SimpleKeychain()
keychain.useAccessControl = true
keychain.defaultAccessiblity = .WhenPasscodeSetThisDeviceOnly

var defaultAccount = keychain.stringForKey("default.account", promptMessage: message)

if defaultAccount == nil {
    let uuid = NSUUID().UUIDString.stringByReplacingOccurrencesOfString("-", withString: "", options: nil, range: nil).lowercaseString
    defaultAccount = NSString(string: uuid)
    keychain.setString(defaultAccount, forKey: "default.account")
}

println(split( defaultAccount ){ $0 == "$" })

That did the trick! Thank you!!