我目前正在使用一个 React 应用程序,它使用 MSAL.js 向我在 Azure B2C 中注册的 Apple 身份提供程序进行身份验证。我的实施基于一个指南:Post-GA Revisit of "Sign In with Apple" for Azure AD B2C
除了访问令牌请求外,一切都在工作,我在登录后尝试静默获取。我目前收到 iFrame msal.js 使用中发生的 X-Frame Deny 错误,它回退到一个 acquireTokenRedirect 哪个要求用户再次登录(不是很好的用户体验)然后它就可以工作了。
来自浏览器控制台的错误:
拒绝显示'https://appleid.apple.com/auth/authorize?client_id=com.my.clientid&redirect_uri=https://myb2ctenant.b2clogin.com%2foauth2%2fauthresp&response_type=code&scope=email&response_mode=form_post&nonce=nonce&state=StateProperties% 3drandomCharshere',因为它将'X-Frame-Options'设置为'deny'。
不幸的是,Apple 关于其端点的隐式流的文档是有限的。
我的两个问题是:
我想知道通过 Apple 登录是否可能无法使用隐藏的 iFrame 技术以静默方式获取令牌。有没有人成功实施这个?
我知道当遇到与其他身份提供商(例如 Google)的确切 X-Frame 拒绝问题时,您可以将 login_hint 传递给acquireTokenSilent 请求,该请求允许跳过交互(例如,如果用户有多个帐户并进入帐户选择屏幕iFrame)。不过,我没有成功地将各种声明作为 login_hint 传递给 Apple Provider(并且关于它的文档似乎不存在)。