我正在构建2部分登录系统。凡一个用户将登录到一个主账号Account
模式,这个账号将持有访问许多球队Team
模式,并且一个账号可以有1个用户每队User
模式。问题是我可以用护照定义Account
登录策略,但我只能使用Account
模型序列化和反序列化,但是当我想要重定向或登录Account
及其与Team
相关的特定数据时,我无法用护照记录他们。我需要一些想法或解决方案,也许有一些我可以使用的护照策略。 PS:认为这就像一个懒散的登录系统类型的作品,主帐户(电子邮件)可以容纳多个团队或每个具有特定细节的聊天组。passport.js多个de /序列化方法
0
A
回答
1
如果我正确理解你的需求,我相信你有两个选择 - 注册多个(de)序列化器,或者把更多的逻辑放到你的(de)序列化实现中。
虽然没有真正记录,但您可以注册multiple serialize和deserialize函数。如果第一个函数不成功,它应该调用done('pass');
将执行继续到下一个(de)串行器,例如。 (请注意,示例代码只是把我的头顶部):
passport.deserializeUser((obj, done) => {
Account.deserialize(obj)
.then((account) => done(null, account))
.catch((err) => done('pass'));
});
passport.deserializeUser((obj, done) => {
User.deserialize(obj).then((user) => done(null, user))
});
您不限于使用您所选择的ORM/ODM的显然内置(反)序列。因此,您可以在序列化功能中执行任何您需要的定制逻辑。例如,将模型实例ID和类型放入序列化对象中,并在反序列化时使用它们。
passport.serializeUser((obj, done) => {
if (obj instanceof Account) {
done(null, { id: obj.id, type: 'Account' });
} else {
done(null, { id: obj.id, type: 'User' });
}
});
passport.deserializeUser((obj, done) => {
if (obj.type === 'Account') {
Account.get(obj.id).then((account) => done(null, account));
} else {
User.get(obj.id).then((user) => done(null, user));
}
});
+0
谢谢你,只是启发我,我会尝试在未来几天的过程中,让你知道,谢谢我认为这可能是答案。 –
相关问题
- 1. System.Globalization.CultureInfo(de)序列化
- 2. XML(De)列表序列化
- 3. (De)用Jil序列化DynamicObject?
- 4. 当Xml(De)序列化时维护多对多关系
- 5. Node.js Express Passport.js - 数据不会序列化
- 6. Passport.js异步与同步反序列化
- 7. 自定义Json(de)序列化?
- 8. 自定义json(de)用springboot序列化
- 9. XML(de)序列化和模式升级
- 10. protobuf-net和de /序列化对象
- 11. De序列化XML中的抽象类
- 12. Json.NET Uri(de)序列化错误
- 13. (De)将对象自动序列化为一个包
- 14. 序列化异步方法
- 15. 有没有办法创建一个实例方法(de)序列化与元帅的对象?
- 16. De序列化字符串列表而不创建新类?
- 17. Python的defaultdict(列表)de /序列化性能
- 18. 如何de /序列化与杰克逊列表<Object>?
- 19. 序列化打印方法
- 20. Java“的方法序列化”
- 21. 递归序列化方法
- 22. 以XML格式序列化C#中多个对象的方法
- 23. WCF推荐用于序列化多个对象的方法
- 24. 序列化,在序列化对象中有很多方法是不好的
- 25. 创建一个反序列化一个序列化对象的方法。
- 26. 是否有可能在杰克逊de /序列化映射本身多态?
- 27. 序列化多个对象
- 28. 序列化多个对象
- 29. 序列化多个流.NET
- 30. 二进制(De)序列化一个对象流到一个文件
您现在正在使用'passport-local-mongoose'或类似的吗? – vesse
我使用本地statregy(2注册),但我想用它们与不同的de /序列化模型 –