паспорт-яблоко необъяснимый invalid_client на бэкэнде nodejs с использованием чистого репозитория примеров со свежим набором учетных данных

Я клонировал https://github.com/ananay/passport-apple-example и заменил конфиг на это:

clientID: "com.myname.web",
teamID: "myteamid",
callbackURL: "https://myurldev.com/auth/apple/redirect",
keyID: "mykeyid",
privateKeyLocation: path.join(__dirname, "../apple-key.p8")

Я также добавил сертификат SSL на свой компьютер и запустил сервер с https, все работает нормально и распознается моим браузером. Я также запускаю приложение на порту 443 и проксирую его, используя файл моих хостов myurl.dev.com - ›127.0.0.1.

У меня такая же настройка аутентификации для facebook, google и microsoft, и все работает нормально.

У меня есть:

  • Создал новый идентификатор приложения и включил для него вход через Apple, назвав его: com.myname.dev
  • Создал новый идентификатор СЕРВИСА и включил Вход с помощью Apple, назвал его: com.myname.web
  • Добавлен https://myurldev.com/auth/apple/redirect в URL-адреса ответа для идентификатора службы com.myname.web
  • Установите идентификатор моего приложения com.myname.dev в качестве основного идентификатора приложения, с которым будет сгруппирована моя служба.
  • Создан закрытый ключ и включен вход с помощью Apple, интерфейс подтвердил наличие сгруппированного идентификатора com.myname.web, связанного с com.myname.dev, для которого был создан ключ.
  • Я подтвердил с помощью console.log, что закрытый ключ действительно находится на пути, переданном в качестве параметра.
  • преобразовал файл .p8 в base64, а затем обратно в UTF-8 в попытке использовать строку для privateKeyString
  • успешно реализовал Apple Oauth несколько раз в прошлом, используя паспорт-яблоко

На этот раз по какой-то причине auth просто не работает.

Если я устанавливаю clientID в качестве идентификатора приложения, а не службы, я получаю

invalid_request
Invalid web redirect url. 

вместо invalid_client

Мы высоко ценим любые советы по отладке. Спасибо.


РЕДАКТИРОВАТЬ №1:

Я немного углубился в пакет паспорт-яблоко, чтобы выяснить, не противоречит ли что-либо документам Apple в отношении генерации токенов, но поток никогда не достигает этой части, указывая на то, что что-то идет не так с фактической конфигурацией в консоли Apple и с тем, что я пытаюсь для использования в моем проекте.


РЕДАКТИРОВАТЬ №2 2 созданных мной идентификаторов приложений всегда выдают неправильный uri перенаправления, потому что они не являются идентификаторами службы, поэтому я не могу настроить redirect_uri, это изменится, если это необходимо, если я передам undefined как redirect_uri.

Вместо этого один из идентификаторов приложений выдает только недопустимый client_id, независимо от того, передаю ли я undefined или хорошее значение для redirect_uri.


РЕДАКТИРОВАТЬ # 3 Пройдя полную ваниль через процесс потока кода OAuth, просто создал URL-адрес и перенаправил его пользователя, ошибка этого метода согласуется с тем, что происходит при использовании модуля паспорта-яблока.


    const url = new URL("https://appleid.apple.com/auth/authorize");

    url.searchParams.append("state", "fdbd287b1f");
    url.searchParams.append("response_type", "code");
    url.searchParams.append("scope", "name email");
    url.searchParams.append("response_mode", "form_post");
    url.searchParams.append(
      "redirect_uri",
      "https://raiseitupdev.com/auth/apple/redirect",
    );
    url.searchParams.append("client_id", "com.myname.web");

    return res.redirect(url.toString());

person SebastianG    schedule 11.03.2021    source источник


Ответы (1)


[Создатель библиотеки здесь.]

Он тоже перестал работать в разработке? Я считаю, что это ошибка конфигурации, потому что на моем сайте все работает в реальном времени:

https://passport-apple.ananay.dev

Пожалуйста, следите за этой проблемой Github. Спасибо! https://github.com/ananay/passport-apple/issues/23

person Ananay    schedule 12.03.2021
comment
Я опубликовал связанную тему stackoverflow.com/questions/66591137/ - на данный момент я очень сомневаюсь, что это имеет какое-либо отношение к пакет с паспортом, похоже, это ошибка Apple, с которой также сталкиваются другие - person SebastianG; 12.03.2021
comment
не стесняйтесь обновлять свой ответ с помощью решения, которое я добавил в github, с радостью отметьте его как ответ и проголосуйте за него после, чтобы другие в будущем знали, где они облажались - person SebastianG; 12.03.2021