Gateway的sendToClient怎样才能获取到设备的响应数据
手动呼叫老大@walkor
问题描述
在使用Gateway对接设备,设备的鉴权方式是Digest,而realm、nonce两个值需要先请求设备获取。
鉴权流程:
- Client端 向 Server端获取资源,向Server端发送HTTP请求。
2. Server端 收到 Client端的HTTP请求后,判断Client端是否需要鉴权。需要鉴权,Server端 返回 401 Unauthorized,其中响应的报文头加入WWW-Authenticate鉴权域信息,且WWW-Authenticate鉴权域需携带realm、nonce值、algorithm字段用于Client鉴权。
3. Client端 收到 Server端响应的 401 Unauthorized回复后,Client通过返回的algorithm加密算法,对Server端返回的realm、nonce值,用户名ApiAdmin、密码、HTTP url、HTTP method进行加密计算Digest-Response(计算方式查看下方的Digest加密计算公式)。Client端重新发送请求,请求报文头加入Authorization字段,计算出的Digest-Response作为repsonse值。
4. Server端收到Client端重新发送的请求,根据用户名ApiAdmin、密码,采用Client端一样的方法计算出Digest-Response(计算方式查看下方的Digest加密计算公式)。然后将计算出Digest-Response和收到的response值进行比对,比对一致则返回200 OK; 比对不一致则返回 401 Unauthorized,其中响应的报文头加入WWW-Authenticate鉴权域信息,且WWW-Authenticate鉴权域需携带realm、nonce值、algorithm字段用于Client再次鉴权。
Gateway::sendToClient($client_id, json_encode([
"StatusCode" => 0,
"StatusString" => "OK"
]));
1个回答
年代过于久远,无法发表回答
存库或者redis 等待读取