Существует два типа хранимых объектов:
JCWebClient2.Vars.AuthState.notBinded
).JCWebClient2.Vars.AuthState.notBinded
).JCWebClient2.Vars.AuthState.notBinded
).Для записи данных в память устройства используются команды:
Пример записи общедоступного и защищенного объектов
// Идентификатор токена
var tokenID = 0;
// Предъявить PIN-код
JCWebClient2.bindToken({
args: {
tokenID: tokenID,
pin: 'my pin'
}
});
// Записать данные в защищённую область памяти
var privateData = 'my private data',
privateDataLabel = 'Private data';
var privateDataID = JCWebClient2.storeBinaryData({
args: {
data: $utf8.encode(privateData),
label: privateDataLabel,
isPrivate: true
}
});
// Записать данные в общедоступную область памяти
var data = 'my data',
dataLabel = 'Data';
var dataID = JCWebClient2.storeBinaryData({
args: {
data: $utf8.encode(data),
label: dataLabel,
isPrivate: false
}
});
// Отменить ввод PIN-кода
JCWebClient2.unbindToken();
Для получения списка всех хранящихся на устройстве объектов используется команда getBinaryObjectList. Команда возвращает разный набор данных, в зависимости от того какие данные хранятся на устройстве (общедоступные или *защищенные) и текущего состояния аутентификации.
Пример получения данных при состоянии аутентификации JCWebClient2.Vars.AuthState.notBinded
// Идентификатор токена
var tokenID = 0;
// Для примера проверим если было выполнено предъявление PIN-кода, отменить авторизацию
if (JCWebClient2.getLoggedInState().state != JCWebClient2.Vars.AuthState.notBinded) {
JCWebClient2.unbindToken();
}
// Получить список всех объектов данных
var dataObjects = JCWebClient2.getBinaryObjectList({
args: {
tokenID: tokenID
}
});
// Проверка наличия защищенного объекта в полученном списке
var privateDataFound = dataObjects.find(function(element) {
return element.label == privateDataLabel && element.isPrivate == true;
});
// Проверка наличия общедоступного объекта в полученном списке
var dataFound = dataObjects.find(function(element) {
return element.label == dataLabel && element.isPrivate == false;
});
console.log('privateDataFound: ' + privateDataFound);
console.log('dataFound: ' + dataFound);
// ----- Результат -----
// privateDataFound: false
// dataFound: true
Пример получения данных при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded
// Идентификатор токена
var tokenID = 0;
// Предъявить PIN-код
JCWebClient2.bindToken({
args: {
tokenID: tokenID,
pin: 'my pin'
}
});
// Получить список всех объектов данных
var dataObjects = JCWebClient2.getBinaryObjectList({
args: {
tokenID: tokenID
}
});
// Проверка наличия защищенного объекта в полученном списке
var privateDataFound = dataObjects.find(function(element) {
return element.label == privateDataLabel && element.isPrivate == true;
});
// Проверка наличия общедоступного объекта в полученном списке
var dataFound = dataObjects.find(function(element) {
return element.label == dataLabel && element.isPrivate == false;
});
// Отменить ввод PIN-кода
JCWebClient2.unbindToken();
console.log('privateDataFound: ' + privateDataFound);
console.log('dataFound: ' + dataFound);
// ----- Результат -----
// privateDataFound: true
// dataFound: true
Для считывания данных используется команда readBinaryObject.
Пример считывания данных при состоянии аутентификации JCWebClient2.Vars.AuthState.notBinded
// Идентификатор токена
var tokenID = 0;
// Для примера проверим если было выполнено предъявление PIN-кода, отменить авторизацию
if (JCWebClient2.getLoggedInState().state != JCWebClient2.Vars.AuthState.notBinded) {
JCWebClient2.unbindToken();
}
// Получить список объектов данных
var dataObjects = JCWebClient2.getBinaryObjectList({
args: {
tokenID: tokenID
}
});
// Считать данные из объекта из списка, полученного из getBinaryObjectList
dataObjects.forEach(function(element) {
var binData = JCWebClient2.readBinaryObject({
args: {
tokenID: tokenID,
objectID: element.id
}
});
console.log(element.label + ': ' + $utf8.decode(binData));
});
// ----- Результат -----
// Data: my data
Пример считывания данных при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded
// Идентификатор токена
var tokenID = 0;
// Предъявить PIN-код
JCWebClient2.bindToken({
args: {
tokenID: tokenID,
pin: 'my pin'
}
});
// Получить список объектов данных
var dataObjects = JCWebClient2.getBinaryObjectList({
args: {
tokenID: tokenID
}
});
// Считать данные из объекта из списка, полученного из getBinaryObjectList
dataObjects.forEach(function(element) {
var binData = JCWebClient2.readBinaryObject({
args: {
tokenID: tokenID,
objectID: element.id
}
});
console.log(element.label + ': ' + $utf8.decode(binData));
});
// Отменить ввод PIN-кода
JCWebClient2.unbindToken();
// ----- Результат -----
// Private data: my private data
// Data: my data
Для удаления объекта данных из памяти устройства используется команда deleteBinaryObject.
Пример удаления всех объектов, хранящихся на устройстве
// Идентификатор токена
var tokenID = 0;
// Предъявить PIN-код
JCWebClient2.bindToken({
args: {
tokenID: tokenID,
pin: 'my pin'
}
});
// Получить список объектов данных
var dataObjects = JCWebClient2.getBinaryObjectList({
args: {
tokenID: tokenID
}
});
// Удалить объект из списка, полученного из getBinaryObjectList
dataObjects.forEach(function(element) {
JCWebClient2.deleteBinaryObject({
args: {
objectID: element.id
}
});
console.log(element.label + ' was deleted');
});
// Отменить ввод PIN-кода
JCWebClient2.unbindToken();
// ----- Результат -----
// Private data was deleted
// Data was deleted