passport.serializeUser((user, done) => {
done(null, user.id);
});
谢谢!
它是该函数在github上的一个片段(https://github.com/jaredhanson/passport/blob/08f57c2e3086955f06f42d9ac7ad466d1f10019c/lib/authenticator.js)。
如您所见,该函数接受fn
参数。然后检查它是否是一个函数。如果是,则将其推送到this._serializers
。后来它做了一些魔法,我认为现在不重要了。
正如您在jsdoc中所读到的,serializeUser
的目的是注册用于序列化用户对象的函数。因此,您将传递一些函数,这些函数稍后将在一个带有2个参数的代码中调用,在该特定函数级别上的标签是user
和done
。
他们给你留了一些空间,你可以用自己的代码来填充。你可以知道这会有什么表现。他们给了你一个实现自己逻辑的机会。
简单的例子:
function doSomeMagic(fn) {
// I do some my staff
const a = 5;
const b = 10;
// and now I let you decide what to do
// you can implement your own logic in my function
const result = fn(a, b);
console.log(result);
}
doSomeMagic((a, b) => {
return a * b;
});
doSomeMagic((a, b) => {
return a + b;
});
//output:
// 50
// 15
他们就是这么做的。你可以拿我的函数,我给你两个参数,做你想做的任何事情。你可以乘,加,减,任何你想要的。我不必写独立的函数来做数学,我可以写一个,把值作为参数传递,让你决定你想做什么操作。这并不意味着我的代码将以异步方式运行。
我在我的应用程序中使用、模块进行身份验证策略。我试图理解是否还需要使用和方法。据我所知,这些方法使用会话来存储用户信息。我怀疑使用已经实现了使用这些方法的目的。还是我在这里完全错了? 如果我的假设错了,请指正。
我想反序列化表单中的类: 其中文本是加密的,反序列化应该在重建TestFieldEncryptedMessage实例之前取消对值的加密。 我采用的方法非常类似于:https://github.com/codesqueak/jackson-json-crypto 也就是说,我正在构建一个扩展SimpleModule的模块: 如您所见,设置了两个修饰符:EncryptedSerializerModif
我正在尝试使用kryo序列化和反序列化到二进制。我想我已经完成了序列化,但似乎无法反序列化。下面是我正在处理的代码,但最终我想存储一个字节[],然后再次读取它。文档只显示了如何使用文件。
本文向大家介绍PHP 序列化和反序列化函数实例详解,包括了PHP 序列化和反序列化函数实例详解的使用技巧和注意事项,需要的朋友参考一下 序列化与反序列化 把复杂的数据类型压缩到一个字符串中 serialize() 把变量和它们的值编码成文本形式 unserialize() 恢复原先变量 1.创建一个$arr数组用于储存用户基本信息,并在浏览器中输出查看结果; 输出结果: 2.将$arr数组进行序
问题内容: 我尝试过在Java和Android之间实现跨平台序列化。我使用了Serializable,并将我的代码在Android中与台式机Java放在同一软件包中。 来源:java-desktop序列化 资料来源:Android-反序列化 学生是一类,实现了Serializable。在桌面上,我将学生实例序列化为“ thestudent.dat”。我将此文件放在Android设备上的SD卡上,并
问题内容: 我注意到存储在Redis中的某些序列化对象在反序列化方面遇到问题。 当我对Redis中存储的对象类进行更改时,通常会发生这种情况。 我想了解问题,以便为解决方案设计一个清晰的方案。 我的问题是,什么导致反序列化问题?移除公共/私人财产会引起问题吗?也许添加新属性?向类添加新功能会产生问题吗?那么更多的构造函数呢? 在我的序列化对象中,我有一个属性Map,如果我更改(更新了一些属性,添加