【发布时间】:2017-04-28 03:39:29
【问题描述】:
我想重现 plunker 如何管理匿名帐户。
Plunker 可以识别匿名用户。例如,我们可以将 plunker 保存为anonym,然后将其保存为freeze。结果,
只有同一个用户(在清除浏览器历史记录之前)拥有对此插件的完全访问权限(例如,保存修改、解冻)。
如果同一个用户在另一个浏览器中打开它或其他用户打开同一个链接,他们不能
save任何修改;他们必须fork它。
在我的网站中,我使用passport.js 的local 策略来管理命名用户。例如,
router.post('/login', function (req, res, next) {
if (!req.body.username || !req.body.password)
return res.status(400).json({ message: 'Please fill out all fields' });
passport.authenticate('local', function (err, user, info) {
if (err) return next(err);
if (user) res.json({ token: user.generateJWT() });
else return res.status(401).json(info);
})(req, res, next);
});
我使用localStorage 来存储令牌。例如,
auth.logIn = function (user) {
return $http.post('/login', user).success(function (token) {
$window.localStorage['account-token'] = token;
})
};
auth.logOut = function () {
$window.localStorage.removeItem('account-token');
};
有人知道passport.js 是否有任何策略或现有工具来管理匿名帐户,就像 plunker 所做的那样?否则,有没有常规的方法来实现这一点?
【问题讨论】:
-
我为护照的策略匿名用户找到了项目 github,因此可以提供帮助:github.com/jaredhanson/passport-anonymous
标签: authentication login local-storage passport.js angular-local-storage