Попытка аутентификации пользователей Apple в приложении Angular с использованием Cloudkit JS.
Пробовал следующие 2 способа:
Первый:
try {
let resp:any = await this.authService.request.httpClient.get("https://api.apple-
cloudkit.com/database/1/[container]/[environment]/[database]/users/current?ckAPIToken=
[APItoken]").toPromise();
console.log(resp);
} catch (error) {
console.log(error);
if(error.status == 421 && error.error.serverErrorCode == "AUTHENTICATION_REQUIRED") {
if(error.error && error.error.redirectURL) {
window.open(error.error.redirectURL, "mywindow", "location=1,status=1,scrollbars=1, width=800,height=800");
let listener = window.addEventListener('message', async (e) => {
console.log(e);
});
}
}
}
Второй:
<script src="https://cdn.apple-cloudkit.com/ck/1/cloudkit.js"></script>
<div id="apple-sign-in-button"></div>
<div id="apple-sign-out-button"></div>
this.container
.setUpAuth()
.then(userInfo => {
if (userInfo) {
this.userInfo = userInfo;
res(this.userInfo);
}
this.container
.whenUserSignsIn()
.then(userInfo => {
this.userInfo = userInfo;
res(this.userInfo);
}).catch((err) => {rej(err)})
}).catch((err) => {rej(err)})
Оба выдают одинаковую ошибку в окне проверки подлинности Apple с правильными учетными данными и после входа, как показано ниже:
Ответ окна PostMessage после первого метода
data:
errorMessage: "unknownError"
Примечания:
- Я настроил проект Xcode и включил контейнер и облачный комплект в проекте
- Еще не загрузил ни одной сборки в магазин приложений (даже не тестировал) - не знаю, если это требуется
- Я вижу контейнер на панели управления Clodkit