Невозможно аутентифицировать CloudKit JS, используя apiTokenAuth, только без serverToServerKeyAuth
Я строю сеть в Node, которая использует данные, хранящиеся в iCloud, используя CloudKit в публичной базе данных. Для запроса данных я создал apiToken
и serverToServerKey
, Для первого у меня есть строка, но для аутентификации сервер-сервер у меня есть pem
файл, который содержит закрытый ключ. Для настройки CloudKit я делаю следующее:
CloudKit.configure({
services: {
fetch: fetch
},
containers: [{
containerIdentifier: 'iCloud.com.myName.Container',
environment: "production",
apiTokenAuth: {
apiToken: "XXXXXXXXXXXXXXXXXX",
persist: true
},
serverToServerKeyAuth: {
keyID: serverKey,
privateKeyFile: "./private_key.pem"
}
}]
});
var container = CloudKit.getDefaultContainer();
container.setUpAuth().then(function(userIdentity) {
if(userIdentity) {
publicDB = container.publicCloudDatabase;
console.log("[OK] Logged in...");
resolve(userIdentity)
}
});
Это, очевидно, не создает никаких проблем, и я могу запросить контейнер для данных, и мое веб-приложение работает без проблем локально.
Предыдущий фрагмент находится в моем index.js
файл, и когда я получаю данные из iCloud, я передаю их в мой HTML-файл, и я рендерирую их с помощью EJS.
Сейчас я перехожу к производству и у меня есть некоторые вопросы и проблемы. Насколько я знаю, я не могу сдвинуть .pem
файл на сервер, потому что он содержит закрытый ключ, но теперь он находится в бэкэнде, поэтому я не знаю, будет ли он общедоступным.
Существует ли возможность аутентификации пользователей, использующих мое веб-приложение, только с apiToken
, Пользователям нужно только читать данные, а не изменять или создавать, поэтому мне не нужно их идентифицировать.
Я спрашиваю что-то невозможное или кто-то сделал это? Я не нашел никакой информации по этому поводу. Когда я пытаюсь аутентифицировать пользователей, используя предыдущий фрагмент кода, используя только apiTokenAuth
и удаление serverToServerKeyAuth
Я получаю AUTHENTICATION_ERROR
,