我在我的应用程序中使用 Express JS 和 Passport JS。
我想为新用户提供通过特定 URL 自动登录一次的机会。我可以使用 URL 中的信息从数据库中获取用户,因此我有一个 User 对象(带有 id、电子邮件、散列密码等),但我不知道如何使用护照来验证用户和登录。
我尝试使用从数据库获得的用户对象执行以下函数:
req.login(user, function(err) {
if (err) { return next(err); }
return res.redirect('/users/' + req.user.username);
});
source: http://passportjs.org/guide/login/ http://passportjs.org/guide/login/
但这没有用。猜测这只是因为用户对象包含哈希密码......
有人曾经尝试过这个并可以告诉我它是如何工作的吗?
Maybe https://github.com/yarax/passport-url https://github.com/yarax/passport-url策略将对你有用
基本逻辑是从 url 获取参数
UrlStrategy.prototype.authenticate = function(req, options) {
var self = this;
function verified(err, user, info) {
if (err) { return self.redirect(self.failRedirect); } // redirect in fail
self.success(user, info); // done callback
}
this._verify(req.query[this.varName], verified);
};
完整的例子在这里https://github.com/yarax/passport-url/blob/master/index.js https://github.com/yarax/passport-url/blob/master/index.js
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)