小编Vig*_*.V.的帖子

NodeJS pbkdf2Sync密码具有从v0.12.7到v6.9.1的可移植性

我一直在努力将从节点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)

hash mongodb pbkdf2 node.js

4
推荐指数
1
解决办法
249
查看次数

通过API获取电子邮件别名

我正在尝试将电子邮件与其别名链接起来。

例如,同一电子邮件xyz@example.com可能有别名123@example.com

我想使用 microsoft graph API 或某些基于 Office 365 的 API 来获取电子邮件的别名列表。

我该怎么办?

office365 office365api microsoft-graph-api

3
推荐指数
1
解决办法
2649
查看次数

通过SSL的Websocket

我正在使用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)

php apache ssl websocket

2
推荐指数
1
解决办法
3769
查看次数

在FCM for Chrome中订阅主题

我正在使用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

2
推荐指数
1
解决办法
1621
查看次数

在elasticsearch聚合中为每个存储桶获取一个文档

我在 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)

elasticsearch

2
推荐指数
1
解决办法
1704
查看次数

检查元素是否在屏幕上可见

我正在使用这个插件 - isOnScreen来检查元素是否在视口上可见(检查帖子是否已被查看)。

但是是否有可能有某种回调,而不是有 setTimeOut 并每次检查每个帖子的可见性,而是在相应元素可见时触发回调?

或者我可以使用其他任何图书馆来做到这一点吗?

我说的是视觉视口。(不是 css 可见性)

html javascript jquery

1
推荐指数
1
解决办法
2898
查看次数