为什么在 iOS 应用程序上使用 SSO 进行身份验证时收到“端点仅接受 POST 请求。收到 GET 请求”错误,但在 Safari 上却没有?

问题描述 投票:0回答:1
我在苹果商店有一个应用程序需要使用SSO登录。当尝试使用 Microsoft 登录时,在常规 safari 上一切都工作得很好,但是当我在苹果商店的应用程序上尝试它时,在输入密码(然后应该提示输入 2fa)后,我收到一条错误消息“端点仅接受 POST 请求。”

查看网络选项卡后,我发现有趣的是,输入密码后根本没有发送请求。

注意:此应用程序是使用 PWA 构建器网站制作的。

这是在 login.microsoft 页面输入我的密码后弹出的错误

我已确保将所有必要的域放入 info.plist 中的 WKAppBoundDomains 列表中。我已尝试清除所有cookie,但这没有帮助

我们使用 WorkOS 获取 login.mocrosoft.online 的 URL,这是用户完成身份验证的地方

public async Task<SystemMessage> SsoLoginAsync(string email) { WorkOS.WorkOS.SetApiKey(_settings.WorkOsApiKey); SSOService ssoService = new(); ApplicationUser user = await _db.Users .Include(o => o.Client) .Where(o => o.Email == email && o.IsActive == true ).FirstOrDefaultAsync(); if (user == null) { return Notification.ErrorMessage("Could not Authenticate"); } string orgId = user.Client?.SsoOrganizationId; if (orgId == null) { return Notification.ErrorMessage("Could not Authenticate"); } GetAuthorizationURLOptions options = new() { ClientId = _settings.WorkOsClientId , Organization = orgId , RedirectURI = _settings.BaseUrl + "login?fromSso=true" }; string ssoUrl = ssoService.GetAuthorizationURL(options); return Notification.SuccessMessage( "" , value: new { ssoUrl, email } , showSystemMessage: false ); }
    
ios swift single-sign-on progressive-web-apps
1个回答
0
投票
我能够解决这个问题。我不知道 settings.swift 文件必须与 info.plist 中的 WKAppBoundDomains 匹配。

在 Settings.swift 中,有一个名为“allowedOrigins”的字符串数组。将这个字符串数组与 info.plist 中的 WKAppBoundDomains 匹配后,一切都按预期工作。

© www.soinside.com 2019 - 2024. All rights reserved.