Gateway的sendToClient怎樣才能獲取到設(shè)備的響應(yīng)數(shù)據(jù)
手動(dòng)呼叫老大@walkor
問題描述
在使用Gateway對(duì)接設(shè)備,設(shè)備的鑒權(quán)方式是Digest,而realm、nonce兩個(gè)值需要先請(qǐng)求設(shè)備獲取。
鑒權(quán)流程:
- Client端 向 Server端獲取資源,向Server端發(fā)送HTTP請(qǐng)求。
2.?Server端 收到?Client端的HTTP請(qǐng)求后,判斷Client端是否需要鑒權(quán)。需要鑒權(quán),Server端 返回?401 Unauthorized,其中響應(yīng)的報(bào)文頭加入WWW-Authenticate鑒權(quán)域信息,且WWW-Authenticate鑒權(quán)域需攜帶realm、nonce值、algorithm字段用于Client鑒權(quán)。
3.?Client端 收到 Server端響應(yīng)的?401 Unauthorized回復(fù)后,Client通過返回的algorithm加密算法,對(duì)Server端返回的realm、nonce值,用戶名ApiAdmin、密碼、HTTP url、HTTP method進(jìn)行加密計(jì)算Digest-Response(計(jì)算方式查看下方的Digest加密計(jì)算公式)。Client端重新發(fā)送請(qǐng)求,請(qǐng)求報(bào)文頭加入Authorization字段,計(jì)算出的Digest-Response作為repsonse值。
4.?Server端收到Client端重新發(fā)送的請(qǐng)求,根據(jù)用戶名ApiAdmin、密碼,采用Client端一樣的方法計(jì)算出Digest-Response(計(jì)算方式查看下方的Digest加密計(jì)算公式)。然后將計(jì)算出Digest-Response和收到的response值進(jìn)行比對(duì),比對(duì)一致則返回200 OK; 比對(duì)不一致則返回?401 Unauthorized,其中響應(yīng)的報(bào)文頭加入WWW-Authenticate鑒權(quán)域信息,且WWW-Authenticate鑒權(quán)域需攜帶realm、nonce值、algorithm字段用于Client再次鑒權(quán)。

Gateway::sendToClient($client_id, json_encode([
"StatusCode" => 0,
"StatusString" => "OK"
]));
1個(gè)回答
年代過于久遠(yuǎn),無(wú)法發(fā)表回答