Apple 使用 Parse Server 登录

Apple SignIn with Parse Server

我的应用托管在 sashido.io 上,它提供 Parse Server 托管。因为它是必需的,所以我正在尝试为我的应用程序实施 Apple SignIn。作为第一步,我将以下代码添加到我的应用程序中。 Apple SignIn 有效,我获得了令牌和 ID,但我无法使用此数据创建 Parse User。这是我的 iOS-代码:

var authData = [String: String]()
authData["id"] = id
authData["token"] = token
PFUser.logInWithAuthType(inBackground: "apple", authData: authData).continueWith(block: {
    task -> Void in
       ...
})

我已验证 authData 正确包含 ID 和令牌。不幸的是,我收到一个内部服务器错误作为响应 {"code":1,"message":"Internal server error."}

在那之后,我修改了我的 index.js 文件的以下部分,并将其推送到 sashido。不幸的是,这并没有改变任何东西,我仍然收到内部服务器错误。

var api = new ParseServer(
{
    databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
    appId: process.env.APP_ID || 'myAppId',
    masterKey: process.env.MASTER_KEY || 'masterKey',
    serverURL: process.env.SERVER_URL || 'http://localhost:' + port + '/1',

    // If you change the cloud/main.js to another path
    // it wouldn't work on SashiDo :( ... so Don't change this.
    cloud: process.env.CLOUD_CODE_MAIN || 'cloud/main.js',

    auth: {
       apple: {   
          client_id: process.env.IOS_BUNDLE_ID
       }
    },

    liveQuery: {
        classNames: []
    },
});

使用 Apple 支持登录最初是在 Parse Server 3.5.0 中发布的。然而,随后在 3.7.0、3.8.0 和 4.2.0 中进行了重大改进和错误修复。

Sashido 支持的最新版本是 3.6.0,但是他们还没有添加对 Sign in with Apple 的支持。请参阅下面来自 app settings > users > social login on 3.6.0...

的屏幕截图

另请注意,编辑您的 index.js 文件并将其推送到您的私人 Sashido GitHub 存储库不会更改 Parse Server 配置。此设施仅供本地开发使用。

我建议您联系 Sashido 并要求他们添加对使用 Apple 登录的支持 - 最好是在 Parse Server 4.2.0 上,这样您将获得最新的改进。