Iphone аутентифицированный пользователь не перенаправлен в приложение - PullRequest
0 голосов
/ 06 апреля 2020

Я использую AspNetCore 2.2.0 с IdentityServer4.

Проблема / действия по воспроизведению проблемы Я использую IPhone для «входа с помощью яблока». Нажатие на кнопку входа в собственном приложении открывает веб-страницу входа, которая находится в контейнере windows docker. На веб-странице входа в систему при нажатии «Войти с помощью Apple» отображается IOS собственное всплывающее окно, чтобы продолжить работу с учетной записью, уже связанной с приложением, или «Использовать другой Apple ID». При нажатии кнопки «Продолжить» отображается белый экран, который зависает на appleid.apple.com и ничего не происходит. IPhone собственное всплывающее окно при продолжении приводит к белому экрану Кроме того, если приложение не связано с каким-либо идентификатором Apple, прежде чем оно будет работать нормально в первый раз. При выходе из системы и попытке войти с помощью описанных выше шагов появляется белый экран. Поток «Использовать другой Apple ID» работает нормально. Я не уверен, есть ли какая-либо ошибка в моем коде или IdentityServer4. Согласно журналам, обратный вызов / подключение / авторизация / обратный вызов принимается от Apple, но это не отражается в браузере. Мы высоко ценим любую помощь.

Соответствующие части файла журнала trce: IdentityServer4.ResponseHandling.AuthorizeInteractionResponseGenerator [0] ProcessInteractionAsync dbug: Equinox.Account.Services.Equinoxile 0 : AuthorizeEndpoint dbug: IdentityServer4.Services.DefaultConsentService [0] Клиент настроен так, что не требует согласия, согласие не требуется. Dbug: IdentityServer4.Endpoints.AuthorizeCallbackEndpoint [0] dbug: IdentityServer4.ResponseHandling.AuthorizeRence. dbug: Equinox.Account.Repositories.PersistedGrantsRepository [0] MAbolcoMM9bi + QcW7FVOgryzkOBZXiPRZzpw4R1UAWk = не найден в базе данных. dbug: IdentityServer4.ResponseHandling.AuthorizeResponsese. trce: IdentityServer4.Services.DefaultTokenService [0] Создание токена идентификатора dbug: IdentityServer4.Services.DefaultClaimsService [0] Получение заявок на токен идентификатора для субъекта: test@testmailid.com и клиента: mymobileapp dbug: Equinox.Account.Services.Equinox Получить профиль для субъекта test@testmailid.com из клиента mymobileapp с типами заявок дата рождения, фамилия, пол, имя, имя, локаль, отчество, имя, псевдоним, фотография, предпочитаемое_имя пользователя, профиль, updated_at, веб-сайт, zoneinfo, электронная почта, электронная почта подтверждена с помощью ClaimsProviderIdentityToken dbug: Equinox .Account.Services.EquinoxProfileService [0] Выданные заявки: электронная почта, email_verified, имя_семьи, имя_файла, имя, локаль, mosoid, псевдоним, oid, картинка, предпочитаемое_имя_пользователя, shareid, trackingid, updated_at, идентификатор_пользователя, zoneinfo trce: IdentityServer4.okenService.Services.Default. ] Создание токена идентификации JWT trce: IdentityServer4.Endpoints.AuthorizeCallbackEndpoint [0] Идентификационный токен, выданный для mymobileapp (имя не задано) / test@testmailid.com: eyJhbGciOiJSUzI1 NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE1ODU5MDg5MjAsImV4cCI6MTU4NTk5NTMyMCwiaXNzIjoiaHR0cHNcdTAwM2FcdTAwMmZcdTAwMmZxYVx1MDAyZGxvZ2luXHUwMDJlZXF1aW5veFx1MDAyZWNvbSIsImF1ZCI6ImVxeG1vYmlsZWFwcCIsIm5vbmNlIjoiQ0IxXHUwMDI0OVx1MDAyM1x1MDAzZlpIUUp5N1U4IiwiaWF0IjoxNTg1OTA4OTIwLCJjXHUwMDVmaGFzaCI6InVLVWxcdTAwNW trce: IdentityServer4.Endpoints.AuthorizeCallbackEndpoint [0] Код выдается mymobileapp (без имени комплект) / test@testmailid.com: swsDKcMd78uWqcuqIA3h6KEk4v3GS1Ml информация: IdentityServer4.Endpoints.AuthorizeCallbackEndpoint [0] Авторизоваться конечная точка ответа {SubjectId: "test@testmailid.com", ClientId: "mymobileapp", RedirectUri: "mymobileapp: // oauthredirect", область: "электронная почта профиля openid offline_access"} trce: IdentityServer4.Endpoints.AuthorizeCallbackEndpoint [0] Завершить запрос на авторизацию. Тип результата: IdentityServer4.Endpoints.Results.AuthorizeResult trce: IdentityServer4.Hosting.IdentityServerMiddleware [0] Вызов результата: IdentityServer4.Endpoints.Results.AuthorizeResult dbug: IdentityServer4. Hosting. После дальнейшей отладки оказалось, что когда пользовательская конечная точка «auth / apple» удаляет создание auth cook ie, перенаправление происходит на странице входа в систему - очевидно, что без аутентификации элемент управления переходит на страницу входа. В противном случае появляется белый экран. Ниже приведен фрагмент кода

AuthenticationProperties props = null;
HttpContext.SignInAsync(account.Username, account.Username, props).Wait();

То, что может вызвать появление белого экрана из-за auth cook ie, довольно удивительно. Буду очень признателен, если кто-нибудь может поделиться каким-либо предложением?

1 Ответ

0 голосов
/ 13 апреля 2020

Проблема решена и белый экран был показан из-за безопасности браузера Safari. Поскольку повар ie создавался для моего хоста login.mysite.com с appleid.apple.com. Хотя повар ie создавался (как видно на сеансе Чарльза), но прогресс был заблокирован, и отображается белый экран. Я создал прерывистую невидимую форму и разместил данные в потоке из моего домена, а затем продолжил тот же шаг, который решил проблему. Отправка разрешения на случай, если кто-то столкнется с той же проблемой с потоком «Войти через Apple».

...