tidev / titanium-identity

A collection of API's to authenticate with your device: Keychain/Keystore, Touch ID and Face ID

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

keepAlive property don't work

jordanbisato opened this issue · comments

On iOS, when i use TiIdentity.authenticate, i can pass the "keepAlive" property like a parameter (https://docs.appcelerator.com/platform/latest/#!/api/IdentityAuthenticationType).

I tried use this but don't work.

On callback of authenticate method i call KeyChainItem.read(), but it fires the authenticate popup again.

var TiIdentity = require('ti.identity');
var keychainItem = TiIdentity.createKeychainItem({
	identifier: 'loginData',
	accessGroup: "XXXXX" + '.' + Ti.App.getId(),
	accessibilityMode: TiIdentity.ACCESSIBLE_WHEN_UNLOCKED_THIS_DEVICE_ONLY,
	accessControlMode: TiIdentity.ACCESS_CONTROL_TOUCH_ID_ANY,
});

keychainItem.addEventListener('save', function saveKeychain(e) {
    if (!e.success) {
	Ti.API.info('Error saving the keychain: ' + e.error);
        return;
    } else {
        TiIdentity.authenticate({
		reason: 'Touch sensor to authenticate',
		keepAlive: true,
		callback: function(e) {
			if (!e.success) {
				Ti.API.info('Error! Message: ' + e.error + '\nCode: ' + e.code);
			} else {
				keychainItem.read("loginData");
				TiIdentity.invalidate();
			}
		}
	});
    }
});

keychainItem.save("TEST");

keychainItem.addEventListener('read', function readKeychain(e) {
    if (!e.success) {
        Ti.API.info('Error reading the keychain: ' + e.error);
        return;
    }
});