エクスプレスでストームパスを使用する方法を学ぼうとしています。私は、yeoman と angular-fullstack ジェネレーターで生成したフルスタックの angular/node プロジェクトを持っています。ログインして登録し、パスワードを忘れて作業しました。しかし、ルートの 1 つに制限を追加して、ログインしているユーザーに対してのみ機能するようにしたい場合、誰も通過させません。
次のように、サーバー上の app.js で stormpath を初期化します。
var stormpath = require('express-stormpath');
app.use(stormpath.init(app, {
apiKeyId: 'XXXXXXXXXXXXXXXXXXX',
apiKeySecret: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
application: 'https://api.stormpath.com/v1/applications/XXXXXXXXXXXXXXXXXXX',
secretKey: 'XXXXXXXXXXXXXXXXXXX',
expandCustomData: true,
enableForgotPassword: true
}));
API index.js ファイルのルートは次のようになります。
var express = require('express');
var stormpath = require('express-stormpath');
var router = express.Router();
router.post('/:id/vote', stormpath.loginRequired, function(req, res){
console.log("User clicked vote button!");
console.log("User e-mail: "+res.user.email);
});
私が経験している問題は、投稿ルートを呼び出すと、ログがまったく取得されないことです。サイトにログインしていますが、ルートにアクセスできないようです。stormpath.loginRequired を削除すると機能しますが、ユーザー データが失われます。
お手伝いありがとう!