TypeError: access_token not present in TokenSet

TypeError: access_token not present in TokenSet

我正在尝试创建一个博客网站,我已经使用 auth0 设置了我的身份验证并作为我的后端表达。对于客户端,我正在使用 React。要了解有关登录用户的信息,我需要通过 API.

发送 req.oidc.fetchUserInfo() 对象

通过一些研究我得到了这一点:

var app = express();
const { auth } = require("express-openid-connect");

...

app.use(
    auth({
        issuerBaseURL: process.env.AUTH0_ISSUER_BASE_URL,
        baseURL: process.env.BASE_URL,
        clientID: process.env.AUTH0_CLIENT_ID,
        secret: process.env.SESSION_SECRET,
        authRequired: false,
        auth0Logout: true,
    })
)

app.use((req,res,next) => {
    res.locals.isAuthenticated = req.oidc.isAuthenticated();
    next();
})


const asyncMiddleware = fn =>
  (req, res, next) => {
    Promise.resolve(fn(req, res, next))
      .catch(next);
  };


app.get('/user-info', asyncMiddleware(async (req, res) => {

    const userInfo = await req.oidc.fetchUserInfo();
    res.json(userInfo);
}))

...

虽然当我转到地址 localhost:5000/user-info 时我 运行 出错了:

GET /user-info 500 859.666 ms - 736
TypeError: access_token not present in TokenSet
    at Client.requestResource (/mnt/ALPHA/Projects/rajusite/server/node_modules/openid-client/lib/client.js:1022:15)
    at Client.userinfo (/mnt/ALPHA/Projects/rajusite/server/node_modules/openid-client/lib/client.js:1121:33)
    at RequestContext.fetchUserInfo (/mnt/ALPHA/Projects/rajusite/server/node_modules/express-openid-connect/lib/context.js:153:19)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at async /mnt/ALPHA/Projects/rajusite/server/routes.js:111:22

我知道这是关于丢失的令牌,它不会让我获得用户的信息。

我检查过 Getting access token for Auth0 with Express 但它已经启用了。

您需要指定要访问的范围(例如“openid 电子邮件配置文件...”),但在您的代码中我没有看到。如果您不要求任何访问权限,那么您将不会获得任何访问令牌。

查看代码示例here