# Modules.Identity.KeychainItem

Represents a keychain item to communicate with the native iOS Keychain and Android Keystore.

Availability
6.1.0
6.1.0

# Overview

The following example demonstrates the basic usage to save, read and delete values with the native iOS Keychain and/or Android Keystore:

var Identity = require('ti.identity');

// Create a keychain item
var keychainItem = Identity.createKeychainItem({
    identifier: 'password'
});

// Triggered when the keychain item was successfully saved
keychainItem.addEventListener('save', function(e) {
    // Notify the user that the operation succeeded or failed
});

// Write to the keychain
keychainItem.save('s3cr3t_p4$$w0rd');

For advanced security options, you can specify accessibility mode to the keychain that will be applied when writing items to the keychain, for example:

var Identity = require('ti.identity');

// Create a keychain item
var keychainItem = Identity.createKeychainItem({
  identifier: 'mypassword',
  service: 'my_service', // iOS only. Defaults to 'ti.touchid' for backwards compatibility
  accessGroup: '<YOUR-TEAM-ID>.com.appc.identitytest',
  accessibilityMode: Identity.ACCESSIBLE_WHEN_PASSCODE_SET_THIS_DEVICE_ONLY,
  accessControlMode: Identity.ACCESS_CONTROL_TOUCH_ID_ANY,
  // Pass more native options to the keychain. Since there are hundrets of them,
  // look up the value of the constant and pass it here. Example:
    options: {
      // The value of kSecUseOperationPrompt
      'u_OpPrompt': 'Please authenticate yourself!'
  }
});

# Properties

# apiName READONLY

Availability
6.1.0
6.1.0
apiName :String

The name of the API that this proxy corresponds to.

The value of this property is the fully qualified name of the API. For example, Titanium.UI.Button returns Ti.UI.Button.


# bubbleParent

Availability
6.1.0
6.1.0
bubbleParent :Boolean

Indicates if the proxy will bubble an event to its parent.

Some proxies (most commonly views) have a relationship to other proxies, often established by the add() method. For example, for a button added to a window, a click event on the button would bubble up to the window. Other common parents are table sections to their rows, table views to their sections, and scrollable views to their views. Set this property to false to disable the bubbling to the proxy's parent.

Default: true


# lifecycleContainer

Availability
6.1.0

The Window or TabGroup whose Activity lifecycle should be triggered on the proxy.

If this property is set to a Window or TabGroup, then the corresponding Activity lifecycle event callbacks will also be called on the proxy. Proxies that require the activity lifecycle will need this property set to the appropriate containing Window or TabGroup.

# Methods

# addEventListener

Availability
6.1.0
6.1.0
addEventListener(name, callback) void

Adds the specified callback as an event listener for the named event.

Parameters

Name Type Description
name String

Name of the event.

callback Callback<Titanium.Event>

Callback function to invoke when the event is fired.

Returns

Type
void

# applyProperties

Availability
6.1.0
6.1.0
applyProperties(props) void

Applies the properties to the proxy.

Properties are supplied as a dictionary. Each key-value pair in the object is applied to the proxy such that myproxy[key] = value.

Parameters

Name Type Description
props Dictionary

A dictionary of properties to apply.

Returns

Type
void

# fetchExistence

Availability
6.1.0
6.1.0
fetchExistence(result) void

Asynchronously determines whether or not a value of the specified identifier exists in the keychain item.

Parameters

Name Type Description
result Callback

Use the event key exists of the callback to determine the existence of the keychain item.

Returns

Type
void

# fireEvent

Availability
6.1.0
6.1.0
fireEvent(name[, event]) void

Fires a synthesized event to any registered listeners.

Parameters

Name Type Description
name String

Name of the event.

event Dictionary

A dictionary of keys and values to add to the Titanium.Event object sent to the listeners.

Returns

Type
void

# read

Availability
6.1.0
6.1.0
read() void

Reads an existing value to the native keychain.

The read event is triggered when an item is fetched. If an error occurs, the error key informs you about the exact error.

Returns

Type
void

# removeEventListener

Availability
6.1.0
6.1.0
removeEventListener(name, callback) void

Removes the specified callback as an event listener for the named event.

Multiple listeners can be registered for the same event, so the callback parameter is used to determine which listener to remove.

When adding a listener, you must save a reference to the callback function in order to remove the listener later:

var listener = function() { Ti.API.info("Event listener called."); }
window.addEventListener('click', listener);

To remove the listener, pass in a reference to the callback function:

window.removeEventListener('click', listener);

Parameters

Name Type Description
name String

Name of the event.

callback Callback<Titanium.Event>

Callback function to remove. Must be the same function passed to addEventListener.

Returns

Type
void

# reset

Availability
6.1.0
6.1.0
reset() void

Resets an existing value from the native keychain.

The reset event is triggered when a new item is saved. If an error occurs, the error key informs you about the exact error.

Returns

Type
void

# save

Availability
6.1.0
6.1.0
save(value) void

Saves a new value to the native keychain.

The save event is triggered when a new item is saved. If an error occurs, the error key informs you about the exact error.

On Android this will also overwrite any existing value.

Parameters

Name Type Description
value String

The value to be stored in the native keychain.

Returns

Type
void

# update

Availability
6.1.0
6.1.0
update(value) void

Updates an existing value to the native keychain.

The update event is triggered when an item is updated. If an error occurs, the error key informs you about the exact error.

Parameters

Name Type Description
value String

The value to be stored in the native keychain.

Returns

Type
void

# Events

# save

Availability
6.1.0
6.1.0

Triggered when a new keychain item is saved (or an error occurred).


# update

Availability
6.1.0
6.1.0

Triggered when a new keychain item is updated (or an error occurred).


# read

Availability
6.1.0
6.1.0

Triggered when a new keychain item is read (or an error occurred).


# reset

Availability
6.1.0
6.1.0

Triggered when a new keychain item is reset (or an error occurred).