Vue.js,Express Server,Okta,部署到 Heroku,implicit/callback 上的 404
Vue.js, Express Server, Okta, deploy to Heroku, 404 on implicit/callback
我有一个使用 vue-cli 构建并通过 Okta 授权的 Vue 应用程序。作为生产设置推送到 Heroku,但我有点想知道 Okta 是否不在免费增值级别上进行生产?
我是否在文档中遗漏了关于此的内容...
设置:
获得了一个 src
包含常用内容的目录 router/index.js
附加了 Okta 库:
Vue.use(Auth, {
issuer: 'dev_url',
client_id: 'some_string',
redirect_uri: window.location.origin + '/implicit/callback',
scope: 'openid profile email'
})
这是在路由数组中:
{
path: '/implicit/callback',
component: Auth.handleCallback()
},
在 src/
中获得了 server.js
并获得了一些 jwt 验证和构建文件夹:
app.use(express.static(path.join(__dirname, "../dist")))
...
const oktaJwtVerifier = new OktaJwtVerifier({
clientId: '<some_id>',
issuer: '<some_url>'
})
...
app.get('/', authRequired(), (req, res, next) => {
return res.sendFile(path.join(__dirname, '../dist/index.html'))
})
这些看起来都不错,而且在本地主机上一切都很好用。使用 webpack-dev-server,但通过推送到 heroku,我在 implicit/callback
路由上得到 404...
这是脚本:
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
"test": "npm run unit",
"lint": "eslint --ext .js,.vue src test/unit",
"build": "node build/build.js",
"server": "node ./src/server",
"start": "node ./src/server",
"heroku-prebuild": "npm install && npm run build"
},
当构建完成并且所有的快乐时光都应该开始时,我点击登录,这个调用通过浏览器发送出去,这看起来有点奇怪:
https://<base_url>.herokuapp.com/implicit/callback#id_token=<huge_hashed_string>&token_type=Bearer&expires_in=3600&scope=openid+email+profile&state=<huge_hashed_string>
然后我们在 404 上崩溃并且没有发生身份验证。
如果你克隆它并且 npm install
你可以 运行 npm run dev
和 npm start
.
我尝试过的事情:
进行了很多路由操作,不确定还有什么问题,主要是因为老实说它在本地工作我想我要么在设置 Okta 应用程序时遗漏了一些东西,要么在文档中遗漏了一些东西'别让我运行这样。
我在仪表板设置中将生产 url 添加到 登录重定向 URI。并接受了基础 urls。有人对此有任何意见吗?
还不错。我找到的答案是您必须回到令牌存储并使用 OktaClient 而不是它们的隐式回调设置。按照 This tutorial.
解决了问题
我有一个使用 vue-cli 构建并通过 Okta 授权的 Vue 应用程序。作为生产设置推送到 Heroku,但我有点想知道 Okta 是否不在免费增值级别上进行生产?
我是否在文档中遗漏了关于此的内容...
设置:
获得了一个 src
包含常用内容的目录 router/index.js
附加了 Okta 库:
Vue.use(Auth, {
issuer: 'dev_url',
client_id: 'some_string',
redirect_uri: window.location.origin + '/implicit/callback',
scope: 'openid profile email'
})
这是在路由数组中:
{
path: '/implicit/callback',
component: Auth.handleCallback()
},
在 src/
中获得了 server.js
并获得了一些 jwt 验证和构建文件夹:
app.use(express.static(path.join(__dirname, "../dist")))
...
const oktaJwtVerifier = new OktaJwtVerifier({
clientId: '<some_id>',
issuer: '<some_url>'
})
...
app.get('/', authRequired(), (req, res, next) => {
return res.sendFile(path.join(__dirname, '../dist/index.html'))
})
这些看起来都不错,而且在本地主机上一切都很好用。使用 webpack-dev-server,但通过推送到 heroku,我在 implicit/callback
路由上得到 404...
这是脚本:
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
"test": "npm run unit",
"lint": "eslint --ext .js,.vue src test/unit",
"build": "node build/build.js",
"server": "node ./src/server",
"start": "node ./src/server",
"heroku-prebuild": "npm install && npm run build"
},
当构建完成并且所有的快乐时光都应该开始时,我点击登录,这个调用通过浏览器发送出去,这看起来有点奇怪:
https://<base_url>.herokuapp.com/implicit/callback#id_token=<huge_hashed_string>&token_type=Bearer&expires_in=3600&scope=openid+email+profile&state=<huge_hashed_string>
然后我们在 404 上崩溃并且没有发生身份验证。
如果你克隆它并且 npm install
你可以 运行 npm run dev
和 npm start
.
我尝试过的事情:
进行了很多路由操作,不确定还有什么问题,主要是因为老实说它在本地工作我想我要么在设置 Okta 应用程序时遗漏了一些东西,要么在文档中遗漏了一些东西'别让我运行这样。
我在仪表板设置中将生产 url 添加到 登录重定向 URI。并接受了基础 urls。有人对此有任何意见吗?
还不错。我找到的答案是您必须回到令牌存储并使用 OktaClient 而不是它们的隐式回调设置。按照 This tutorial.
解决了问题