0

我让苹果登录工作到了我用苹果登录的程度,苹果通过一个发布请求重定向到我的服务器。

我设置了以下快递处理程序:

app.post('/apple-callback', async function (req, res) {
    let data = req.body.id_token
    let buff = Buffer.from(data.split('.')[1], 'base64')
    let text = buff.toString('utf8')
    let json = JSON.parse(text)
    try {
        let currentUser = await Parse.User.logInWith('apple', {
            'authData':{
                'id': json.sub,
                'token': data
            } 
        })

        console.info(currentUser)
    } catch (error) {
        console.error(error)
    }

    res.json({
        'fissa': req.body,
        'state': req.body.state,
        'code': req.body.code,
        'idToken': req.body.id_token,
        json,
        sub: json.sub
    })
})

但我收到以下错误:

Feb 25, 2020, 15:56:39 +01:00- ERROR
Uncaught internal server error. { JsonWebTokenError: invalid signature
    at /opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:133:19
    at getSecret (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:90:14)
    at Object.module.exports [as verify] (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:94:10)
    at verifyIdToken (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/index.js:43:25)
    at process._tickCallback (internal/process/next_tick.js:68:7) name: 'JsonWebTokenError', message: 'invalid signature' } JsonWebTokenError: invalid signature
    at /opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:133:19
    at getSecret (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:90:14)
    at Object.module.exports [as verify] (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:94:10)
    at verifyIdToken (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/index.js:43:25)
    at process._tickCallback (internal/process/next_tick.js:68:7)
Feb 25, 2020, 15:56:39 +01:00- ERROR
JsonWebTokenError: invalid signatureJsonWebTokenError: invalid signature
    at /opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:133:19
    at getSecret (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:90:14)
    at Object.module.exports [as verify] (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:94:10)
    at verifyIdToken (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/index.js:43:25)
    at process._tickCallback (internal/process/next_tick.js:68:7)
Feb 25, 2020, 15:56:39 +01:00- ERROR
Uncaught internal server error. { JsonWebTokenError: invalid signature
    at /opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:133:19
    at getSecret (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:90:14)
    at Object.module.exports [as verify] (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:94:10)
    at verifyIdToken (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/index.js:43:25)
    at process._tickCallback (internal/process/next_tick.js:68:7) name: 'JsonWebTokenError', message: 'invalid signature' } JsonWebTokenError: invalid signature
    at /opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:133:19
    at getSecret (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:90:14)
    at Object.module.exports [as verify] (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:94:10)
    at verifyIdToken (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/index.js:43:25)
    at process._tickCallback (internal/process/next_tick.js:68:7)
Feb 25, 2020, 15:56:39 +01:00- ERROR
JsonWebTokenError: invalid signatureJsonWebTokenError: invalid signature
    at /opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:133:19
    at getSecret (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:90:14)
    at Object.module.exports [as verify] (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:94:10)
    at verifyIdToken (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/index.js:43:25)
    at process._tickCallback (internal/process/next_tick.js:68:7)
Feb 25, 2020, 15:56:39 +01:00- ERROR
Uncaught internal server error. { JsonWebTokenError: invalid signature
    at /opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:133:19
    at getSecret (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:90:14)
    at Object.module.exports [as verify] (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:94:10)
    at verifyIdToken (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/index.js:43:25)
    at process._tickCallback (internal/process/next_tick.js:68:7) name: 'JsonWebTokenError', message: 'invalid signature' } JsonWebTokenError: invalid signature
    at /opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:133:19
    at getSecret (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:90:14)
    at Object.module.exports [as verify] (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:94:10)
    at verifyIdToken (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/index.js:43:25)
    at process._tickCallback (internal/process/next_tick.js:68:7)
Feb 25, 2020, 15:56:39 +01:00- ERROR
JsonWebTokenError: invalid signatureJsonWebTokenError: invalid signature
    at /opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:133:19
    at getSecret (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:90:14)
    at Object.module.exports [as verify] (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:94:10)
    at verifyIdToken (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/index.js:43:25)
    at process._tickCallback (internal/process/next_tick.js:68:7)
Feb 25, 2020, 15:56:39 +01:00- ERROR
Uncaught internal server error. { JsonWebTokenError: invalid signature
    at /opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:133:19
    at getSecret (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:90:14)
    at Object.module.exports [as verify] (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:94:10)
    at verifyIdToken (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/index.js:43:25)
    at process._tickCallback (internal/process/next_tick.js:68:7) name: 'JsonWebTokenError', message: 'invalid signature' } JsonWebTokenError: invalid signature
    at /opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:133:19
    at getSecret (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:90:14)
    at Object.module.exports [as verify] (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:94:10)
    at verifyIdToken (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/index.js:43:25)
    at process._tickCallback (internal/process/next_tick.js:68:7)
Feb 25, 2020, 15:56:39 +01:00- ERROR
JsonWebTokenError: invalid signatureJsonWebTokenError: invalid signature
    at /opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:133:19
    at getSecret (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:90:14)
    at Object.module.exports [as verify] (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/node_modules/jsonwebtoken/verify.js:94:10)
    at verifyIdToken (/opt/app-root/src/node_modules/sashido-parse-server-apple-auth-adapter/index.js:43:25)
    at process._tickCallback (internal/process/next_tick.js:68:7)

有什么建议么?

这就是我在解析文档和一些试验和错误方面取得的进展。

但我不知道如何修复错误并获得有效的解析用户。

4

1 回答 1

0

结果发现 parse-server 中存在错误,Apple 开始托管多个公钥(因此密钥并不总是与签名的 jwt 匹配),而身份验证适配器不支持。到目前为止,该修复程序已合并到 master 中,并将随下一个版本一起提供,此时我在问题中使用的代码可以正常工作。

仅供参考:https ://github.com/parse-community/parse-server/issues/6496

于 2020-03-14T14:53:08.250 回答