Stormpath在登录时不让我访问路线

时间:2015-07-20 21:09:36

标签: angularjs node.js express stormpath

我正在努力学习如何使用stormpath和express。我有一个fullstack角度/节点项目,我用自耕农和angular-fullstack生成器生成。我登录,注册并忘记密码工作。但是当我想在我的一条路线上添加限制因此它只适用于登录用户时,它不会让任何人通过。

我在服务器上的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,那么它可以工作,但后来我错过了用户数据。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

express-stormpath模块尚未设计用于Angular等单页应用程序。我们有一个单独的(beta!)模块,专为Angular设计:stormpath-sdk-express

我们有详细的指南,解释了如何将该模块与Angular一起使用:

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

注意:我们正在积极地合并这些模块,因此将来会有一个版本将所有功能合并为一个。

希望这有帮助!