Ios Iphone身份验证用户未重定向到应用程序

Ios Iphone身份验证用户未重定向到应用程序,ios,iphone,.net-core,identityserver4,apple-sign-in,Ios,Iphone,.net Core,Identityserver4,Apple Sign In,我正在使用带有IdentityServer4的AspNetCore 2.2.0 问题/重现问题的步骤 我正在使用IPhone“登录苹果”。点击本机应用程序中的登录按钮打开一个登录网页,该网页位于windows docker容器中。在登录网页上,单击“使用apple登录”显示IOS本机弹出窗口,继续使用已链接到应用程序的帐户或“使用其他apple ID”。当点击“继续”按钮时,将显示一个白色屏幕,该屏幕在appleid.apple.com上冻结,不会发生任何事情。 此外,如果应用程序在第一次正常运

我正在使用带有IdentityServer4的AspNetCore 2.2.0

问题/重现问题的步骤 我正在使用IPhone“登录苹果”。点击本机应用程序中的登录按钮打开一个登录网页,该网页位于windows docker容器中。在登录网页上,单击“使用apple登录”显示IOS本机弹出窗口,继续使用已链接到应用程序的帐户或“使用其他apple ID”。当点击“继续”按钮时,将显示一个白色屏幕,该屏幕在appleid.apple.com上冻结,不会发生任何事情。 此外,如果应用程序在第一次正常运行之前没有与任何apple ID链接。按上述步骤注销并尝试登录时,会出现白色屏幕。“使用不同的苹果ID”流程运行良好。 我不确定我的代码或IdentityServer4中是否存在任何错误。根据日志,苹果正在接收回调/连接/授权/回调,但它不会反映在浏览器上。非常感谢您的帮助

日志文件的相关部分 trce:IdentityServer4.ResponseHandling.AuthorizationInteractionResponseGenerator[0] 进程交互同步 dbug:Equinox.Account.Services.EquinoxProfileService[0] 从以下位置调用IsActive:AuthorizeEndpoint dbug:IdentityServer4.Services.DefaultApprovementService[0] 客户端配置为不需要同意,无需同意 dbug:IdentityServer4.Endpoints.AuthorizeCallbackEndpoint[0] dbug:IdentityServer4.ResponseHandling.AuthorizeResponseGenerator[0] 创建混合流响应。 dbug:Equinox.Account.Repositories.PersistedGrantsRepository[0] MAbolcoMM9bi+QcW7FVOgryzkOBZXiPRZzpw4R1UAWk=未在数据库中找到 dbug:IdentityServer4.ResponseHandling.AuthorizeResponseGenerator[0] 创建隐式流响应。 trce:IdentityServer4.Services.DefaultTokenService[0] 创建标识令牌 dbug:IdentityServer4.Services.DefaultClaimsService[0] 正在获取主题的身份令牌声明:test@testmailid.com客户:mymobileapp dbug:Equinox.Account.Services.EquinoxProfileService[0] 获取为主题调用的配置文件test@testmailid.com来自客户mymobileapp,索赔类型包括出生日期、姓氏、性别、姓名、地区、中间名、姓名、昵称、图片、首选用户名、个人资料、更新地址、网站、区域信息、电子邮件、电子邮件通过ClaimsProviderIdentityToken验证 dbug:Equinox.Account.Services.EquinoxProfileService[0] 已发布声明:电子邮件、已验证的电子邮件、家庭名称、给定名称、区域设置、mosoid、昵称、oid、图片、首选用户名、shareid、trackingid、更新地址、用户ID、zoneinfo trce:IdentityServer4.Services.DefaultTokenService[0] 创建JWT标识令牌 trce:IdentityServer4.Endpoints.AuthorizeCallbackEndpoint[0] 为mymobileapp颁发的标识令牌(未设置名称) / test@testmailid.com:Eyjhbgcoiizuzi1niisinr5cci6ikpxvcj9.Eyjuymyioj1odg5dg6jasimv4cci6ntk5ntmymcwiaxijijaahr0chntawmzyvx1mxyvx1mzyvx1mzyvx2uxhwjlzf1aw5vx1mzvx1mzyvx1mzyvx1mzyvx1mzyvx1mzyvx1mzyvx1mzyvx1mzyvx1mzyvx1mzyvx1mzyvx1mzyzyvx1mzwxxxjvx1mzyvx1mzyvx1mzyvx1mzzyvx1mzyvx1mzyvx1mzyvx1mzyvx1mzzw trce:IdentityServer4.Endpoints.AuthorizeCallbackEndpoint[0] 为mymobileapp发布的代码(无名称集)/test@testmailid.com:swsDKcMd78uWqcuqIA3h6KEk4v3GS1Ml 信息:IdentityServer4.Endpoints.AuthorizeCallbackEndpoint[0] 授权端点响应 { 主语:test@testmailid.com", 客户ID:“mymobileapp”, 乌里:“我的mobileapp://oauthredirect", 范围:“openid配置文件电子邮件脱机访问” } trce:IdentityServer4.Endpoints.AuthorizeCallbackEndpoint[0] 结束授权请求。结果类型:IdentityServer4.Endpoints.Results.AuthorizeResult trce:IdentityServer4.Hosting.IdentityServerMiddleware[0] 调用结果:IdentityServer4.Endpoints.Results.AuthorizeResult dbug:IdentityServer4.Hosting.IdentityServerAuthenticationService[0] 扩充符号文本 dbug:Equinox.Account.Repositories.PersistedGrantsRepository[0] 在数据库中找不到8RotaoHQ32K7iyNlN61q0700M47i1Fx0

更新: 我仍在努力解决这个问题。经过进一步调试,结果表明,当自定义端点“auth/apple”删除auth cookie创建时,重定向将在登录页面中发生-很明显,在没有身份验证的情况下,控件将转到登录页面。否则,将显示白色屏幕。下面是代码片段

AuthenticationProperties props = null;
HttpContext.SignInAsync(account.Username, account.Username, props).Wait();
由于auth cookie,可能导致白屏的原因非常令人惊讶。
如果有人能分享任何建议,我将不胜感激。

由于Safari浏览器的安全性,问题已得到解决,并显示了白色屏幕。因为cookie是从appleid.apple.com创建到我的主机login.mysite.com的。虽然正在创建cookie(如charles会话中所示),但进度被阻止,并显示白色屏幕。 我已经创建了一个间歇性的不可见表单,并将数据从我的域发布到流中,然后继续执行相同的步骤,解决了问题。 发布解决方案,以防任何人在“使用苹果登录”流程中遇到相同问题