TypeError: cb is not a function
at secretProvider
我在这里得到的错误是index.js文件,我在其中使用express和jwt连接到Auth0
const express = require('express')
const bodyParser = require('body-parser')
const { expressjwt: jwt } = require("express-jwt");
const jwksRsa = require('jwks-rsa');
const envVariables = require('./env-variables.json');
const db = require('./queries')
const port = 3000
const app = express()
app.use(bodyParser.json())
app.use(
bodyParser.urlencoded({
extended: true,
})
)
app.use(jwt({
// Dynamically provide a signing key based on the kid in the header and the singing keys provided by the JWKS endpoint.
secret: jwksRsa.expressJwtSecret({
cache: true,
rateLimit: true,
jwksRequestsPerMinute: 5,
jwksUri: `https://${envVariables.auth0Domain}/.well-known/jwks.json`,
}),
// Validate the audience and the issuer.
audience: envVariables.apiIdentifier,
issuer: `https://${envVariables.auth0Domain}/`,
algorithms: ['RS256']
}));
app.get('/private', (req, res) => res.send('Only authenticated users can read this message.'));
app.get('/users', db.getUsers)
app.get('/users/:id', db.getUserById)
app.post('/users', db.createUser)
app.put('/users/:id', db.updateUser)
app.delete('/users/:id', db.deleteUser)
app.listen(port, () => {
console.log(`App running on port ${port}.`)
})
我不知道该怎么做我新的后端,问题可能已经开始时,我更新了依赖关系,这是现在不同的教程,我用
1条答案
按热度按时间vsdwdz231#
我不知道你有没有找到解决的办法,因为你在这里提出了你的问题。
它似乎来自于express 4.x和jwksRsa之间的不兼容。
我没有成功地解决它。通过使用另一个依赖关系,我可以解决这个问题。
node-oauth2-jwt-bearer您可以在此处找到git页面:https://github.com/auth0/node-oauth2-jwt-bearer/tree/main/packages/express-oauth2-jwt-bearer
基本上以你为例它会变成:
如果您仍有问题,可以通过该教程找到一些帮助:https://auth0.com/docs/quickstart/backend/nodejs/interactive#configure-the-middleware
希望能有所帮助