node.js - Okta 教程:缺少 appBaseUrl
问题描述
正在按照这个 Okta with expressjs 教程使用两者(https://developer.okta.com/blog/2019/05/31/simple-auth-express-fifteen-minutes)创建一个简单的身份验证,并最终克隆了 repo工作。安装了软件包,但是在运行npm start
时抛出了一些错误。所以我决定安装每个包的最新版本。尝试再次运行该项目,但这次弹出此错误:
> okta_tutorial@1.0.0 start /Users/tomas/Documents/software/okta_tutorial
> nodemon .
[nodemon] 2.0.2
[nodemon] to restart at any time, enter `rs`
[nodemon] watching dir(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node .`
/Users/tomas/Documents/software/okta_tutorial/node_modules/@okta/configuration-validation/dist/lib.js:144
throw new ConfigurationValidationError('Your appBaseUrl is missing.');
^
Error: Your appBaseUrl is missing.
at new ConfigurationValidationError (/Users/tomas/Documents/software/okta_tutorial/node_modules/@okta/configuration-validation/dist/lib.js:29:141)
at configUtil.assertAppBaseUrl (/Users/tomas/Documents/software/okta_tutorial/node_modules/@okta/configuration-validation/dist/lib.js:144:11)
at new ExpressOIDC (/Users/tomas/Documents/software/okta_tutorial/node_modules/@okta/oidc-middleware/src/ExpressOIDC.js:79:5)
at Object.<anonymous> (/Users/tomas/Documents/software/okta_tutorial/index.js:24:14)
at Module._compile (internal/modules/cjs/loader.js:1147:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1167:10)
at Module.load (internal/modules/cjs/loader.js:996:32)
at Function.Module._load (internal/modules/cjs/loader.js:896:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47
[nodemon] app crashed - waiting for file changes before starting...
我有一个 Okta Developer 的基本 URL,看起来像https://dev-xxxxxx.okta.com
.
我的.env
文件还包含教程中的所有必需信息。
解决方案
有两种方法可以解决此错误
解决方案 1
将appBaseUrl
属性添加到要传递给 ExpressOIDC 的对象
const oidc = new ExpressOIDC({
appBaseUrl: process.env.OKTA_BASEAPP_URL,
issuer: process.env.OKTA_DOMAIN,
client_id: process.env.OKTA_CLIENT_ID,
client_secret: process.env.OKTA_CLIENT_SECRET,
redirect_uri: process.env.OKTA_REDIRECT_URL,
scope: process.env.OKTA_SCOPE
});
解决方案 2
第一个是降级到的@okta/oidc-middleware
版本1.0.2
首先删除节点包
$ rm -rf ./node_modules
其次,在您的 package.json 中将版本更改@okta/oidc-middleware
为1.0.2
第三次安装节点模块
$ npm install
推荐阅读
- python - 格式化分类报告以显示不同的指标
- python - 我想在python中组合一个元组列表
- ios - 如何检查 UIButtons 标题是否等于特定字符串?
- javascript - 如何在成功登录时更新 React 上下文
- angular - Angular 9 模块解析失败:数字无效
- azure - Azure Cosmos DB 自定义冲突解决方案——冲突项
- mysql - 使用 PHP 和 MYSQL 不显示标记聚类
- unity3d - 你如何统一下载 2D-extras
- scala - 使用运算符(或合成函数)作为参数
- editor - 是否有一个编辑器可以让我查看带有引用和声明的代码片段?