2

我正在运行 Stormpath Express Passport 的示例应用程序 https://github.com/stormpath/stormpath-passport-express-sample

我无法理解如何发布表单并保存 customData 甚至是给定名称和姓氏等默认数据。总的来说,如果我能得到一个 HTML(Jade 或 EJS)示例,其中包含我需要写入的行app.jsindex.js. 我已经为此苦苦挣扎了 4 个晚上。

我已经为 Express、Stormpath 尝试了多个教程,但它们都不适用于此示例应用程序。我总是不得不安装多个新模块,但即使这样也没有任何效果。

如果来自 Stormpath 的人或真正有此经验的人能帮助我解决我的问题,并可能在网站上更新他们的教程,我将非常感激,因为有些似乎已经过时了。

4

1 回答 1

1

我写了那篇文章和项目,我也是express-stormpath的作者(我们的新库让这件事变得更容易)。

最简单的方法是在路由中(使用我们的护照库)是这样的(注意,您可能需要升级到我们的节点库的最新版本才能使这项工作):

req.user.getCustomData(function(err, data) {
  data.someValue = 'blah';
  data.someOtherValue = {
    woot: 'hi',
    nope: 'there',
  };
  data.save(); // persist this data to Stormpath
  res.send('done!');
});

如果您使用我们的 Express 库,则可以更轻松地执行此操作,这是一个示例:

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

var app = express();
app.use(stormpath.init(app, {
  expandCustomData: true,
}));

app.get('/data', stormpath.loginRequired, function(req, res) {
  req.user.customData.color = 'black';
  req.user.save();
  res.send('stored data!');
});

app.listen(3000);
于 2015-01-13T16:58:14.877 回答