类型错误:“秘密”是必需的

Posted

技术标签:

【中文标题】类型错误:“秘密”是必需的【英文标题】:TypeError: "secret" is required 【发布时间】:2021-02-21 14:33:34 【问题描述】:

使用 express-openid-connect 时出现此错误

TypeError: "secret" is required
    at module.exports.get (/home/mathkr/persodev/node_modules/express-openid-connect/lib/config.js:166:11)
    at module.exports (/home/mathkr/persodev/node_modules/express-openid-connect/middleware/auth.js:27:18)
    at Object.<anonymous> (/home/mathkr/persodev/server.js:26:9)

我的server.js 代码是

const express = require('express');
const app = express();
const port = process.env.PORT || 4200;
const auth, requiresAuth = require('express-openid-connect');
const dotenv = require('dotenv');
const session = require('express-session');

const sess = 
  secret: 'somethingsecret',
  cookie: ,
  resave: false,
  saveUninitialized: true
;
if (app.get('env') === 'production') 
  sess.cookie.secure = true;
  app.set('trust proxy', 1);

app.use(session(sess));

const config = 
  ...(dotenv.config()).parsed,
  authRequired: false,
  auth0Logout: true
;

app.use(auth(config));
app.use(function (req, res, next) 
  res.locals.user = req.oidc.user;
  next();
);

app.get('/profile', requiresAuth(), function (req, res, next) 
  res.render('profile', 
    userProfile: JSON.stringify(req.oidc.user, null, 2),
    title: 'Profile page'
  );
);

app.all('*', function (req, res) 
  res.status(200).send('hello');
);

app.listen(port, () => 
  console.log(`Example app listening at http://localhost:$port`)
)

请问怎么了?

版本

node 12.18.3
npm 6.14.6
yarn 1.22.4

    "dotenv": "^8.2.0",
    "express": "^4.17.1",
    "express-openid-connect": "^2.0.0",
    "express-session": "^1.17.1",

【问题讨论】:

【参考方案1】:

我在使用 Auth0 开发自己的应用程序时遇到了完全相同的问题。解决方案是 require dotenv beforerequire 你的应用程序。这是一个示例配置:

require('dotenv').config( path: './path/to/your/.env' );
const app = require('./app');

【讨论】:

好的,很高兴知道,谢谢(我决定扔掉auth0,现在直接使用护照)

以上是关于类型错误:“秘密”是必需的的主要内容,如果未能解决你的问题,请参考以下文章

谷歌云上的getEffectiveOrgPolicy错误运行秘密安装卷

Keycloak 客户端没有可用于访问类型公共的秘密

如何修复 phpmyadmin 中的河豚秘密错误

破解蛋白质结构秘密的AlphaFold

第3课 浮点数的秘密

Binance api 密钥和秘密查询字符串格式错误