Я создал небольшой прототип проекта с использованием CloudKit JS, и теперь я начинаю строить следующую версию, и я хочу использовать Ember, поскольку у меня есть некоторый базовый опыт. Однако я не уверен, где разместить код CloudKit JS. Например, где я должен добавить часть configure и функцию auth? Я думаю, что как только я найду место для кода auth, я мог бы добавить некоторые из моих функций запроса в отдельные виды и компоненты, верно?Ember.js с Cloudkit JS
Вот мой настроить код (с контейнером и идентификатор удаленного):
CloudKit.configure({
containers: [{
containerIdentifier: '###',
// @todo Must generate a production token for app store version
apiToken: '###',
auth: {
persist: true
},
// @todo Must switch to production for app store version
environment: 'development'
}]
});
Вот функция аутентификации:
function setupAuth() {
// Get the container.
var container = CloudKit.getDefaultContainer();
//Function to call when user logs in
function gotoAuthenticatedState(userInfo) {
// Checks if user allows us to look up name
var userName = '';
if (userInfo.isDiscoverable) {
userName = userInfo.firstName + ' ' + userInfo.lastName;
} else {
userName = 'User record name: ' + userInfo.userRecordName;
}
//Calls out initialization function
init();
//Sets up UI for logged in users
setAuthenticatedUI(userName);
//Register logged out function
container
.whenUserSignsOut()
.then(gotoUnauthenticatedState);
}
//Function to call when user logs out
function gotoUnauthenticatedState(error) {
//Checks if error occurred
if (error && error.ckErrorCode === 'AUTH_PERSIST_ERROR') {
displayError(logOutError, 'Error code: AUTH_PERSIST_ERROR');
}
// Sets up the UI for logged out users
setUnauthenticatedUI();
//Register logged in function
container
.whenUserSignsIn()
.then(gotoAuthenticatedState)
.catch(gotoUnauthenticatedState);
}
// Check a user is signed in and render the appropriate button.
return container.setUpAuth()
.then(function(userInfo) {
// userInfo is the signed-in user or null.
if (userInfo) {
gotoAuthenticatedState(userInfo);
} else {
gotoUnauthenticatedState();
}
});
}
Init(), а затем вызывает функции для настройки запросов к добавляет диаграмму на страницу с использованием записей. Функции setAuthenticatedUI() и setUnauthenticatedUI() просто применяют и удаляют классы после аутентификации пользователя.