尝试在我的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']
}));
答案 0 :(得分:4)
我是图书馆的作者。你有两个问题:
您只需要以一种方式设置API密钥(通过环境变量,api密钥文件或手动插入代码)。你现在正以两种方式做这件事(apiKeyFile和环境变量)。
您的API密钥无效。
正在发生的事情是该库首先从环境变量中提取您的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管理员目录中的帐户。
一旦我为附加到有权访问Stormpath应用程序的帐户的一对交换了我的API密钥id / secret,它就开始工作了。
答案 2 :(得分:0)
我遇到了相同/类似的情况。我的问题是我的帐户未经过验证(电子邮件验证),因此即使我使用了正确的变量(STORMPATH_APPLICATION_HREF,STORMPATH_CLIENT_APIKEY_SECRET,STORMPATH_CLIENT_APIKEY_ID),它仍然无法正常工作。
因此,请确保已创建应用程序。默认为' Stormpath'但您可以(也可能应该)创建一个描述您的应用的新应用。创建应用程序后,您将需要创建与先前创建的应用程序关联的帐户。创建帐户时,请确保使用有效的电子邮件,并验证stormpath发送的电子邮件(即您应该能够使用新创建的帐户登录到stormpath)。创建帐户并与应用程序关联后,您需要生成您的帐户API密钥对,它将为您提供密钥和ID。然后,您需要的唯一其他环境变量是应用程序端点值,它是“应用程序详细信息”视图中的HREF值。
我希望这有帮助!快乐的编码。