2

エクスプレスでストームパスを使用する方法を学ぼうとしています。私は、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 を削除すると機能しますが、ユーザー データが失われます。

お手伝いありがとう!

4

1 に答える 1

2

express-stormpathモジュールは、Angular のような単一ページ アプリケーションで使用するようにはまだ設計されていません。Angular 用に設計された別の (ベータ!) モジュールがあります: stormpath-sdk-express

そのモジュールを Angular で使用する方法を説明する詳細なガイドがあります。

https://docs.stormpath.com/angularjs/guide/

注: これらのモジュールの統合に積極的に取り組んでいるため、将来のリリースではすべての機能を 1 つに統合する予定です。

お役に立てれば!

于 2015-07-20T22:37:58.173 に答える