Stormpath Integration,ExpressJS'Stormpath 401需要使用Vaild API Key进行身份验证'

时间:2015-03-17 19:59:20

标签: node.js express stormpath

尝试在我的expressJS应用程序中运行stormpath时出现一个特殊错误。我已经设置了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']
}));

3 个答案:

答案 0 :(得分:4)

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

  1. 您只需要以一种方式设置API密钥(通过环境变量,api密钥文件或手动插入代码)。你现在正以两种方式做这件事(apiKeyFile和环境变量)。

  2. 您的API密钥无效。

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

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

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

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

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

答案 1 :(得分:2)

我最近使用Stormpath Express SDK有类似的经历。事实证明,我的问题是使用了一个看似有效的API密钥,该密钥与可以访问相关Stormpath应用程序的Account对象相关联。

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

enter image description here

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

答案 2 :(得分:0)

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

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

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