2

我一直在关注Heroku Stormpath 文档来设置一个简单的 Express 应用程序。我的 server.js 文件中的代码如下所示:

'use strict';

var express = require('express');
var pg = require('pg');
var stormpath = require('express-stormpath');
var app = express();

app.use(express.static('public'));


app.use(stormpath.init(app, {
  apiKeyFile: '/.stormpath/apiKey.properties',
  apiKeyId:     process.env.STORMPATH_API_KEY_ID,
  apiKeySecret: process.env.STORMPATH_API_KEY_SECRET,
  secretKey:    process.env.STORMPATH_SECRET_KEY,
  application:  process.env.STORMPATH_URL,
}));

app.set('port', (process.env.PORT || 5000));

app.listen(app.get('port'), function(){
  console.log('Node app is running on port', app.get('port'));
});

请原谅我是 Stormpath 的新手。我也查看了 Express-Stormpath 文档,但是在本地运行应用程序时我继续收到以下错误:

Node app is running on port 5000
events.js:141
  throw er; // Unhandled 'error' event
  ^

Error: API key ID and secret is required.

我已经通过 Heroku 配置了 Stormpath 插件,heroku config在终端中运行时,我看到传入的所有变量stormpath.init都可用。有人可以告诉我我做错了什么吗?

4

2 回答 2

1

这是为寻求解决此问题的任何人准备的。您应该参考Stormpath 提供的入门步骤

对于 express.js,请参阅this

这可能是你所缺少的..

设置环境变量:UNIX

    export STORMPATH_CLIENT_APIKEY_ID=5EFMBEN6N34AU36ENEEGJ9YLY
    export STORMPATH_CLIENT_APIKEY_SECRET=iII3MZPC2hJC/yuOXMjaa0/0GcgyeApfPVvWyNmMR1c
    export STORMPATH_APPLICATION_HREF=https://api.stormpath.com/v1/applications/7F0kZw0wqcFBNh1dDbWMiU

设置环境变量:WINDOWS

    set STORMPATH_CLIENT_APIKEY_ID=5EFMBEN6N34AU36ENEEGJ9YLY
    set STORMPATH_CLIENT_APIKEY_SECRET=iII3MZPC2hJC/yuOXMjaa0/0GcgyeApfPVvWyNmMR1c
    set STORMPATH_APPLICATION_HREF=https://api.stormpath.com/v1/applications/7F0kZw0wqcFBNh1dDbWMiU
于 2016-04-12T14:09:01.327 回答
1

如果你在本地运行你的服务器应用程序,我猜你没有创建环境变量,所以试试这个:

$ STORMPATH_API_KEY_ID=123 STORMPATH_API_KEY_SECRET=secret STORMPATH_SECRET_KEY=secret STORMPATH_URL=url node app.js

或者您可以在风暴值为空时设置风暴值,如您的情况:

app.use(stormpath.init(app, {
  apiKeyFile: '/.stormpath/apiKey.properties',
  apiKeyId:     process.env.STORMPATH_API_KEY_ID || 'key',
  apiKeySecret: process.env.STORMPATH_API_KEY_SECRET || 'secret',
  secretKey:    process.env.STORMPATH_SECRET_KEY || 'key',
  application:  process.env.STORMPATH_URL || 'url'
}));

在任何一种情况下,都可以从你在 heroku 的插件中提供你真正的风暴路径值。

于 2015-10-14T17:39:45.257 回答