小弟剛剛開始學(xué)php和workerman,想一點(diǎn)一點(diǎn)熟悉其用法,今天想練習(xí)發(fā)送頭域,發(fā)400沒問題了?,F(xiàn)在想做一個(gè)一訪問workerman就發(fā)401讓瀏覽器彈出自帶打登錄框。怎么樣才能獲得用戶名和密碼然后做下一步操作???
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Workerman\Worker;
use Workerman\Protocols\Http;
$ws_worker = new Worker("http://0.0.0.0:2346");
$ws_worker->count = 4;
$ws_worker->onMessage = function($connection, $data)
{
// Send hello $data
Http::header("WWW-Authenticate:Basic realm=\"111\"");
Http::header('HTTP/1.1 401 Unauthorized');
$connection->send("", true);
return;
};
Worker::runAll();
根據(jù)你描述的場景,這和普通的WEB開發(fā)中的用戶認(rèn)證邏輯沒有什么區(qū)別,然一般不采用也不推薦依據(jù)HTTP協(xié)議狀態(tài)碼來處理業(yè)務(wù)邏輯,普遍做法是進(jìn)行類似用戶名和密碼的 token 鑒權(quán), 客戶端請(qǐng)求過來的時(shí)候,帶上相應(yīng)的鑒權(quán)數(shù)據(jù),workerman服務(wù)端進(jìn)行相應(yīng)的鑒權(quán)認(rèn)證,如果不OK,發(fā)送相應(yīng)的業(yè)務(wù)錯(cuò)誤碼給客戶端,客戶端據(jù)此處理業(yè)務(wù)邏輯【比如客戶端是瀏覽器的話彈個(gè)窗啥的】,反之認(rèn)證OK。
謝謝,主要是這邊是一個(gè)嵌入式設(shè)備,用戶名密碼是按配置選項(xiàng)設(shè)定的,就是個(gè)路由器一樣輸入欄寫入用戶名。想升級(jí)時(shí)用workerman搭的http服務(wù)器獲取文件,請(qǐng)求的字段抓包抓不到,估計(jì)要問一下這邊的開發(fā)是怎么填這個(gè)字段。