我正在使用node.sdk,stormpath,express.js和passport.js爲我的新網站創建一個用戶帳戶系統。所以我建立了一個自定義數據槽的帳戶。我想知道如何在登錄時將新數據發佈到此自定義數據插槽,並在登錄時檢索它。我對使用節點很陌生,並且我不知道在哪裏放置代碼或如何訪問'用戶'的帳戶信息,他們已經登錄。從我能告訴passport.js處理身份驗證,所以我可能無法看到用戶的電子郵件搜索他們的用戶帳戶url在stormpath API ...也許我'米在這裏錯過了什麼?調用和保存用戶帳戶自定義數據
router.post('/register', function(req, res) {
var username = req.body.username; var password = req.body.password;
// Grab user fields. if (!username || !password) { return res.render('register', { title: 'Register', error: 'Email and password required.' }); }
// Initialize our Stormpath client. var apiKey = new stormpath.ApiKey(process.env['STORMPATH_API_KEY_ID'], process.env['STORMPATH_API_KEY_SECRET']); var spClient = new stormpath.Client({ apiKey: apiKey });
var app = spClient.getApplication(process.env['STORMPATH_APP_HREF'], function(err, app) { if (err) throw err;
account = {
givenName: 'John',
surname: 'Smith',
username: username,
email: username,
password: password,
customData:{
favList:'',
},
};
app.createAccount(account, function (err, createdAccount) {
if (err) {
return res.render('register', {'title': 'Register', error: err.userMessage });
} else {
passport.authenticate('stormpath')(req, res, function() {
return res.redirect('/home');
});
}
});
});
});
//呈現登錄頁面。 router.get('/ login',function(req,res){res.render('login',{title:'Login',error:req.flash('error')[0]});}) ;
//驗證用戶。 router.post('/ login', passport.authenticate('stormpath',{successRedirect:'/ home',failureRedirect:'/ login',failureFlash:'哎呀,我猜你需要一個賬號才能進入這裏。 ',}));
//呈現儀表板頁面。 router.get('/ home',function(req,res){if(!req.user || req.user.status!=='ENABLED'){return res.redirect('/ login');}
res.render('home',{title:'Home',user:req.user,});});
oooh好吧,這使得現在更有意義:)。所以讓我弄清楚這一點。我可以通過使用user.email訪問用戶電子郵件? – CHeffernan087 2014-09-22 19:50:12
這是正確的,user.email會給你賬戶的電子郵件地址 – robertjd 2014-09-23 15:45:52