首页 > 解决方案 > 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文件还包含教程中的所有必需信息。

标签: node.jsexpressokta

解决方案


有两种方法可以解决此错误

解决方案 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-middleware1.0.2

第三次安装节点模块

$ npm install

推荐阅读