如何在 Apple JS 中使用“使用 Apple 登录”

Posted

技术标签:

【中文标题】如何在 Apple JS 中使用“使用 Apple 登录”【英文标题】:How to use "Sign In with Apple" with Apple JS 【发布时间】:2019-10-19 22:13:18 【问题描述】:

我会通过 Apple JS 在网络上使用“使用 Apple 登录”。代码示例可以在这里找到:https://developer.apple.com/documentation/signinwithapplejs/configuring_your_webpage_for_sign_in_with_apple

现在的问题是:什么是客户端 ID,我在哪里可以找到它。我在https://developer.apple.com/account/resources/identifiers/list 上测试了应用程序 ID 的标识符,并测试了服务 ID 的标识符。如果我点击按钮并在我的 Mac 上使用 Touch ID 进行验证,我会收到错误“AUTH_ALERT_SIGN_UP_NOT_COMPLETED”:

这是使用的代码:

<html>
    <head>
    </head>
    <body>
        <button id="sign-in-with-apple-button"> Sign In with Apple </button>
        <script type="text/javascript" src="https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js"></script>
        <script type="text/javascript">
            AppleID.auth.init(
                clientId : 'unknown',
                scope : 'email',
                redirectURI: 'https://mytld/test.php',
                state : 'DE'
            );

            const buttonElement = document.getElementById('sign-in-with-apple-button');
            buttonElement.addEventListener('click', () => 
                AppleID.auth.signIn();
            );
        </script>
    </body>
</html>

我没有收到关于 test.php 的请求。

【问题讨论】:

The developer’s client identifier, as provided by WWDR. You must obtain a client identifier from WWDR before you can use Sign In with Apple. 是的,但是我在哪里可以找到这个客户标识符?在文档中没有链接什么的。 State 不是特拉华州中的“DE”,而是可用于缓解 CSRF 的自定义“应用程序状态”。看看这篇文章:developer.okta.com/blog/2019/06/04/… 【参考方案1】:

客户端 ID 是您的 Service ID 的“标识符”,它启用了“使用 Apple 登录”:

Apple 建议您在Register a Service ID screen 上将其设为以下格式:

我们建议使用反向域名样式字符串(即 com.domainname.appname)。它不能包含星号 (*)。

【讨论】:

那么没有开发者会员就无法实现“Sign In with Apple”吗? 正确 -- 如果没有 Apple Developer 会员资格,则无法启用 Sign In with Apple。 @Kaspars 您是如何配置 Sign In With Apple 部分的?那个医生在哪里。当我输入我的域名时,它只是告诉我它是无效的,并且说明很奇怪,因为它说要下载一些东西但没有下载链接。 只有 Apple 可以在 API 上调用 CLIENT ID 并在他们这边调用它的 Service Identifier。那是精神上的。

以上是关于如何在 Apple JS 中使用“使用 Apple 登录”的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Xcode 在 iOS 中添加“使用 Apple 登录”功能

如何在 ionic 3 应用程序中添加“使用 Apple 登录”?

如何使用 Apple 自定义 UITabBarItem 图像?

如何在 iOS Objective-C 中集成“使用 Apple 登录”流程?

如何在 Swift 中使用 Apple 地图 - 你必须使用 C 还是 Swift 可以?

如何在具有相同苹果 ID 的多台设备的用户中找出“使用 Apple 登录”?