2

尝试让stormpath在我的expressJS应用程序中工作时遇到一个特殊错误。我已经设置了一个stormpath 应用程序并获得了我生成的API 密钥。在我的console.log终端中显示我的环境 ID 和密钥,以便它们我的应用程序中运行。这apiKeyFile:条路可以很好地得到我的钥匙。我似乎无法弄清楚为什么我会得到一个ResourceError: HTTP 401, Stormpath 401 (http://www.stormpath.com/docs/quickstart/connect): Authentication with a valid API Key is required.

我对stormpath和表达还很陌生,所以任何建议都将不胜感激。谢谢!

// in front of all other middleware in app.js
console.log(process.env['STORMPATH_API_KEY_SECRET'])
console.log(process.env['STORMPATH_API_KEY_ID'])
app.use(stormpath.init(app, {
 apiKeyFile: 'working path to my API key fie',
 application: 'https://api.stormpath.com/v1/applications/' + process.env['STORMPATH_API_KEY_ID'],
 secretKey: process.env['STORMPATH_API_KEY_SECRET']
}));
4

3 回答 3

4

我是图书馆的作者。你在这里有两个问题:

  1. 您只需要以一种方式设置 API 密钥(通过环境变量、通过 api 密钥文件或通过手动插入代码)。您现在以两种方式执行此操作(apiKeyFile 和环境变量)。

  2. 您的 API 密钥无效。

发生的事情是该库首先从环境变量中提取您的 api 密钥,而这些密钥当前无效。

要进一步测试,请尝试这样做:

app.use(stormpath.init(app, {
  apiKeyFile: '/path/to/apiKey.properties'
}));

并删除您之前设置的所有环境变量。

如果你仍然收到错误,那么你仍然有错误的 API 密钥(也许你删除了你正在使用的那些)——所以去访问 Stormpath 仪表板并创建一个新的 api 密钥对。

于 2015-03-18T16:20:39.560 回答
2

我最近在使用 Stormpath Express SDK 时也有过类似的经历。事实证明,我的问题是使用看似有效的 API 密钥,但该密钥有权访问相关 Stormpath 应用程序的 Account 对象无关。

所以基本上,我使用的 API 密钥 id/secret 不属于 Stormpath 管理员目录中的帐户。

在此处输入图像描述

一旦我将我的 API 密钥 id/secret 换成附加到可以访问 Stormpath 应用程序的帐户的一对,它就开始工作了。

于 2015-03-19T18:10:12.420 回答
0

我遇到了相同/相似的情况。我的问题是我的帐户尚未经过验证(电子邮件验证),因此即使我使用了正确的变量(STORMPATH_APPLICATION_HREF、STORMPATH_CLIENT_APIKEY_SECRET、STORMPATH_CLIENT_APIKEY_ID),它仍然无法正常工作。

因此,请确保您创建了一个应用程序。默认值为“Stormpath”,但您可以(并且可能应该)创建一个描述您的应用程序的新应用程序。创建应用程序后,您需要创建一个与先前创建的应用程序关联的帐户。创建帐户时,请确保使用有效的电子邮件,并验证stormpath 发送的电子邮件(即您应该能够使用新创建的帐户登录stormpath)。创建帐户并与应用程序关联后,您需要生成帐户 API 密钥对,它将为您提供 Secret 和 ID。然后,您需要的唯一其他环境变量是应用程序端点值,即应用程序详细信息视图中的 HREF 值。

我希望这有帮助!快乐编码。

于 2015-12-04T06:18:41.267 回答