我一直在努力将从节点v0.12.7编写的应用程序移植到节点v6.9.1.
我们正在使用MEAN堆栈,所有这些都升级到了最新版本.
除了一个问题,我们已经能够升级所有内容.我们使用pbkdf2Sync方法(内置了express)来散列密码,如下所示:
/**
* Hook a pre save method to hash the password
*/
UserSchema.pre('save', function(next) {
if (this.password && this.password.length > 6) {
this.salt = new Buffer(crypto.randomBytes(16).toString('base64'), 'base64');
this.password = this.hashPassword(this.password);
}
next();
});
/**
* Create instance method for hashing a password
*/
UserSchema.methods.hashPassword = function(password) {
if (this.salt && password) {
return crypto.pbkdf2Sync(password, this.salt, 10000, 64).toString('base64');
} else {
return password;
}
};
Run Code Online (Sandbox Code Playgroud)
在最新版本中,他们已将编码更改为utf8,并且还更改了pbkdf2Sync以包含强制摘要.我不确定他们还改变了什么.
问题:
使用早期版本的节点散列并存储在mongo数据库中的密码与版本升级后hashPassword函数生成的密码不匹配.
我试过了:
1)指定编码字符串
2)使用缓冲区
3)添加摘要选项作为参数
我没有得到任何这些哈希密码.
我尝试使用许多组合更改hashPassword函数.我做的一个尝试就是这个,但是没有用.
UserSchema.methods.hashPassword = function (password) …Run Code Online (Sandbox Code Playgroud) 我正在尝试将电子邮件与其别名链接起来。
例如,同一电子邮件xyz@example.com可能有别名123@example.com。
我想使用 microsoft graph API 或某些基于 Office 365 的 API 来获取电子邮件的别名列表。
我该怎么办?
我正在使用Ratchet在PHP中实现基于Websockets的应用程序,并且如果我处于http模式(ws),则可以成功完成此操作
如果切换到https,则无法执行相同操作。它显示连接超时,我什至在telnet中尝试过,但服务器端未看到任何响应(显示客户端已连接)
1)我使用wss而不是ws
var conn = new WebSocket('wss://www.mysite.com:8080/wss2');
Run Code Online (Sandbox Code Playgroud)
我根据这个答案设置了wss2:php ratchet websocket SSL connect? (我已将Proxypass行添加到我的apache配置文件中)
2)我加载了所有必要的Apache模块
[0] => core
[1] => mod_so
[2] => mod_watchdog
[3] => http_core
[4] => mod_log_config
[5] => mod_logio
[6] => mod_version
[7] => mod_unixd
[8] => mod_access_compat
[9] => mod_alias
[10] => mod_auth_basic
[11] => mod_authn_core
[12] => mod_authn_file
[13] => mod_authz_core
[14] => mod_authz_host
[15] => mod_authz_user
[16] => mod_autoindex
[17] => mod_deflate
[18] => mod_dir
[19] => mod_env
[20] => mod_filter
[21] …Run Code Online (Sandbox Code Playgroud) 我正在使用FCM发送推送通知。
当我知道设备ID时,便能够将通知成功发送到一组设备。
但是现在,我想向此处提到的主题发送通知:https : //firebase.google.com/docs/cloud-messaging/topic-messaging
他们已经很好地记录了服务器端。但是我不确定如何在客户端订阅主题(我的客户端包括适用于不同平台的chrome打包应用程序,Web浏览器,基于离子的移动应用程序。)
因此,总而言之,我如何使用户订阅主题?
请帮帮我。提前致谢。
PS:我确实经历了如何从javascript(对于Chrome)中注册到GCM主题以及如何在Chrome中实现Google Cloud Messaging-主题消息?但这并没有太大帮助。
android firebase google-cloud-messaging google-chrome-app firebase-cloud-messaging
我在 elasticsearch 中有一个聚合,它给出如下响应:
{
"took": 5,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1261,
"max_score": 0,
"hits": []
},
"aggregations": {
"clusters": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 1073,
"buckets": [
{
"key": 813058,
"doc_count": 46
},
{
"key": 220217,
"doc_count": 29
},
{
"key": 287763,
"doc_count": 23
},
{
"key": 527217,
"doc_count": 20
},
{
"key": 881778,
"doc_count": 15
},
{
"key": 700725,
"doc_count": 14
},
{
"key": 757602,
"doc_count": 13
}, …Run Code Online (Sandbox Code Playgroud) 我正在使用这个插件 - isOnScreen来检查元素是否在视口上可见(检查帖子是否已被查看)。
但是是否有可能有某种回调,而不是有 setTimeOut 并每次检查每个帖子的可见性,而是在相应元素可见时触发回调?
或者我可以使用其他任何图书馆来做到这一点吗?
我说的是视觉视口。(不是 css 可见性)