我正在构建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. Passport.js异步与同步反序列化
- 4. XML(de)序列化和模式升级
- 5. 自定义Json(de)序列化?
- 6. 自定义json(de)用springboot序列化
- 7. (De)将对象自动序列化为一个包
- 8. 序列化异步方法
- 9. 有没有办法创建一个实例方法(de)序列化与元帅的对象?
- 10. De序列化字符串列表而不创建新类?
- 11. WCF推荐用于序列化多个对象的方法
- 12. 以XML格式序列化C#中多个对象的方法
- 13. 序列化,在序列化对象中有很多方法是不好的
- 14. 无法模块化passport.js与节点
- 15. 是否有可能在杰克逊de /序列化映射本身多态?
- 16. 二进制(De)序列化一个对象流到一个文件
- 17. 序列化多个对象
- 18. passport.js反序列化正常,但身份验证不起作用
- 19. C#XML(DE)孩子的序列化对象
- 20. 对象可以(de)在richfaces xhtml中序列化吗?
- 21. 设计模式为(de)序列化数据
- 22. 我应该在Lagom中定义自定义(de)序列化器?
- 23. jsconfig注册(标记)接口的自定义de /序列化
- 24. C# - 序列化和反序列化方法
- 25. De/Serialization模板
- 26. 序列化/反序列化公共枚举的简单方法?
- 27. 序列化和反序列化.NET对象的最快方法
- 28. 节点+ Passport.js +会话+多个服务器
- 29. 多态XML序列化/反序列化
- 30. Passport.JS
您现在正在使用'passport-local-mongoose'或类似的吗? – vesse
我使用本地statregy(2注册),但我想用它们与不同的de /序列化模型 –