Как вы можете сохранить состояние пользователя, зависит от ваших потребностей.
Если вы хотите отслеживать для машины состояние Вы можете сохранить данные в HTML5 Local Storage.
Если вы хотите отследить для пользовательских состояний для пользователей с подпиской (независимо от того, какую машину или документ они используют), вы должны сохранить их идентификатор пользователя и состояние в своей базе данных. Для моей собственной надстройки, я реализовал эту конструкцию с Firebase:
function readUserStateAsync(customerId, callback){
var myUserReference = firebase.database().ref("myCustomers/" + customerId);
myUserReference.once('value').then(function(userState) {
callback(userState.val());
});
}
function writeUserStateAsync(customerId, userState, callback){
var myUserReference = firebase.database().ref("myCustomers");
myUserReference.child(customerId).set(userState, function(){ callback("success"); });
}
-Michael Сандерс, руководитель программы для офиса надстроек
Я прочитал эту сложную страницу, но есть способ просто получить уникальный идентификатор пользователя, используя JavaScript, поэтому я могу отправить его на свой сервер? Моя цель - хранить информацию о пользователе на моем сервере, чтобы пользователь мог использовать информацию для разных документов и хостов, если у них установлена надстройка. Я бы предпочел не требовать дополнительного входа в систему. –
@ExcelAnalyst, поле «cid» https://msdn.microsoft.com/en-us/library/office/jj163880.aspx является * разумным * хорошим значением для использования. Однако есть несколько оговорок. a) Иногда это может быть пустым (если надстройка была куплена от имени организации или если пользователь каким-то образом не подписал контракт с учетной записью Microsoft). б) не гарантируется, что он останется неизменным навсегда (это гарантированный идентификатор, подтвержденный валидацией, тогда как cid может когда-нибудь измениться, если алгоритм хеширования изменится). Но, когда он не пуст, это довольно хороший показатель того же пользователя. –
PS: Чтобы быть ясным, ** обратное ** последнего утверждения было бы неверным. I.e, разные значения cid НЕ обязательно означают разных пользователей (могут быть разные хэши одного и того же пользователя в течение достаточно длительного периода времени). Но то же самое значение CID - я думаю - будет [почти] всегда означать одного и того же пользователя. Однако, если вам нужна гарантия, вам нужно будет использовать проверку на стороне сервера. –