apiKey 密钥 ID 和秘密是必需的,即使它们在 express-stormpath 中
apiKey key ID and secret is required even though they're there in express-stormpath
我正在尝试在我的 Heroku 应用程序上使用 express-stormpath。我在这里关注文档,我的代码非常简单:
var express = require('express');
var app = express();
var stormpath = require('express-stormpath');
app.use(stormpath.init(app, {
website: true
}));
app.on('stormpath.ready', function() {
app.listen(3000);
});
我已经看过 this question and followed the Heroku devcenter docs。文档说对于 Heroku 应用程序,没有必要传递选项,但我仍然尝试传递选项但没有任何效果。例如,我试过这个:
app.use(stormpath.init(app, {
// client: {
// file: './xxx.properties'
// },
client: {
apiKey: {
file: './xxx.properties',
id: process.env.STORMPATH_API_KEY_ID || 'xxx',
secret: process.env.STORMPATH_API_KEY_SECRET || 'xxx'
}
},
application: {
href: 'https://api.stormpath.com/v1/applications/blah'
},
}));
为了看看发生了什么,我在 stormpath-config strategy valdiator 中添加了 console.log 行来打印客户端对象,它给了我这个:
{ file: './apiKey-xxx.properties',
id: 'xxx',
secret: 'xxx' }
{ file: null, id: null, secret: null }
Error: API key ID and secret is required.
为什么它被调用了两次,第二次,为什么客户端对象的文件、id 和 secret 的值为空?
当我运行heroku config | grep STORMPATH
时,我得到
STORMPATH_API_KEY_ID: xxxx
STORMPATH_API_KEY_SECRET: xxxx
STORMPATH_URL: https://api.stormpath.com/v1/applications/[myappurl]
经过无尽的时间,我终于成功地通过完全删除附加组件并通过 Heroku CLI 重新安装它,然后导出变量 STORMPATH_CLIENT_APIKEY_ID
和 STORMPATH_CLIENT_APIKEY_SECRET
。出于某种原因,通过 Heroku Dashboard 安装它会导致 express-stormpath 找不到 apiKey 和 secret 字段(即使您导出变量)。
我是 express-stormpath 库的原作者,还为 Stormpath 编写了 Heroku 文档。
这 100% 是我的错,是 Stormpath 方面的文档/配置错误。
过去,我们所有的库都默认查找几个环境变量:
STORMPATH_URL
(你的申请URL)
STORMPATH_API_KEY_ID
STORMPATH_API_KEY_SECRET
然而,不久前,我们开始升级我们的库,并意识到我们希望在所有支持的语言/框架/等中采用更标准的方法。为了使事情更明确,我们基本上重命名我们默认查找的变量,改为:
STORMPATH_APPLICATION_HREF
STORMPATH_CLIENT_APIKEY_ID
STORMPATH_CLIENT_APIKEY_SECRET
不幸的是,我们还没有更新我们的 Heroku 集成或文档来反映这些变化,这就是为什么你只是 运行 进入这个讨厌的问题。
我刚刚向我们的工程团队提交了一张票,以修复我们的 Heroku 插件默认提供的变量名称以包括我们的新变量,我将在今天下午晚些时候更新我们的 Heroku 文档以修复这对以后的任何人都是如此。
对于所有的困惑/沮丧,我深表歉意。有时这些东西会被漏掉,像这样的经历让我意识到我们需要更好的测试来及早发现这些东西。
我将在内部进行一些更改,以确保我们有更好的流程来推出像这样的更新。
如果你想要一件免费的 Stormpath T 恤,请联系我,我会把一件寄给你,以此作为对 'thanks' 忍受烦恼的一种小方式说:运行dall@stormpath.com
我正在尝试在我的 Heroku 应用程序上使用 express-stormpath。我在这里关注文档,我的代码非常简单:
var express = require('express');
var app = express();
var stormpath = require('express-stormpath');
app.use(stormpath.init(app, {
website: true
}));
app.on('stormpath.ready', function() {
app.listen(3000);
});
我已经看过 this question and followed the Heroku devcenter docs。文档说对于 Heroku 应用程序,没有必要传递选项,但我仍然尝试传递选项但没有任何效果。例如,我试过这个:
app.use(stormpath.init(app, {
// client: {
// file: './xxx.properties'
// },
client: {
apiKey: {
file: './xxx.properties',
id: process.env.STORMPATH_API_KEY_ID || 'xxx',
secret: process.env.STORMPATH_API_KEY_SECRET || 'xxx'
}
},
application: {
href: 'https://api.stormpath.com/v1/applications/blah'
},
}));
为了看看发生了什么,我在 stormpath-config strategy valdiator 中添加了 console.log 行来打印客户端对象,它给了我这个:
{ file: './apiKey-xxx.properties',
id: 'xxx',
secret: 'xxx' }
{ file: null, id: null, secret: null }
Error: API key ID and secret is required.
为什么它被调用了两次,第二次,为什么客户端对象的文件、id 和 secret 的值为空?
当我运行heroku config | grep STORMPATH
时,我得到
STORMPATH_API_KEY_ID: xxxx
STORMPATH_API_KEY_SECRET: xxxx
STORMPATH_URL: https://api.stormpath.com/v1/applications/[myappurl]
经过无尽的时间,我终于成功地通过完全删除附加组件并通过 Heroku CLI 重新安装它,然后导出变量 STORMPATH_CLIENT_APIKEY_ID
和 STORMPATH_CLIENT_APIKEY_SECRET
。出于某种原因,通过 Heroku Dashboard 安装它会导致 express-stormpath 找不到 apiKey 和 secret 字段(即使您导出变量)。
我是 express-stormpath 库的原作者,还为 Stormpath 编写了 Heroku 文档。
这 100% 是我的错,是 Stormpath 方面的文档/配置错误。
过去,我们所有的库都默认查找几个环境变量:
STORMPATH_URL
(你的申请URL)STORMPATH_API_KEY_ID
STORMPATH_API_KEY_SECRET
然而,不久前,我们开始升级我们的库,并意识到我们希望在所有支持的语言/框架/等中采用更标准的方法。为了使事情更明确,我们基本上重命名我们默认查找的变量,改为:
STORMPATH_APPLICATION_HREF
STORMPATH_CLIENT_APIKEY_ID
STORMPATH_CLIENT_APIKEY_SECRET
不幸的是,我们还没有更新我们的 Heroku 集成或文档来反映这些变化,这就是为什么你只是 运行 进入这个讨厌的问题。
我刚刚向我们的工程团队提交了一张票,以修复我们的 Heroku 插件默认提供的变量名称以包括我们的新变量,我将在今天下午晚些时候更新我们的 Heroku 文档以修复这对以后的任何人都是如此。
对于所有的困惑/沮丧,我深表歉意。有时这些东西会被漏掉,像这样的经历让我意识到我们需要更好的测试来及早发现这些东西。
我将在内部进行一些更改,以确保我们有更好的流程来推出像这样的更新。
如果你想要一件免费的 Stormpath T 恤,请联系我,我会把一件寄给你,以此作为对 'thanks' 忍受烦恼的一种小方式说:运行dall@stormpath.com