javascript
fguillot json rpc_Hyperf 框架创建 JSON-rpc 服务
我們創建一個User服務供其他服務調用以實現認證和鑒權。
checkToken 方法接收兩個參數,一個token,一個permission,首先驗證token獲得user,對user的鑒權將在以后的權限認證教程補充。
如果認證成功,將返回user.
在配置文件server.php增加一個json-rpc服務,監聽端口為9504[
'name' => 'jsonrpc-http',
'type' => Server::SERVER_HTTP,
'host' => '0.0.0.0',
'port' => 9504,
'sock_type' => SWOOLE_SOCK_TCP,
'callbacks' => [
SwooleEvent::ON_REQUEST => [Hyperf\JsonRpc\HttpServer::class, 'onRequest'],
],
],
post 請求{"jsonrpc":"2.0","method":"/user/checkToken","params":["eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI1ZGNhM2RjZjE2NDQzIiwiaWF0IjoxNTczNTM1MTgzLCJuYmYiOjE1NzM1MzUxODMsImV4cCI6MTU3MzU0MjM4MywidXNlcl9pZCI6MX0.s0_ADx2399sIajxHW_-LnQY7ftbVhH1qEFbRT60qNYA",[]],"id":"1"}
正確返回{
"jsonrpc": "2.0",
"id": "1",
"result": {
"user_id": 1,
"username": "admin",
"nick_name": "超級管理員",
"real_name": "超級管理員",
"sex": 0,
"phone": "",
"avatar": "",
"last_login_at": null,
"created_at": "2019-11-04 15:16:18",
"status": 1
}
}
錯誤返回{
"jsonrpc": "2.0",
"id": "1",
"error": {
"code": -32000,
"message": "Token未驗證通過",
"data": {
"class": "Phper666\\JwtAuth\\Exception\\TokenValidException",
"message": "Token未驗證通過"
}
}
}
這里可能有人會有疑問,這個服務是公開的,是不是誰都可以調用,答案肯定是否定的,我們的服務將部署在Docker私有網絡,外部是無法訪問到的,這個后面會講到。
總結
以上是生活随笔為你收集整理的fguillot json rpc_Hyperf 框架创建 JSON-rpc 服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微服务集成cas_Spring Clou
- 下一篇: gc的原因 频繁full_系统缓慢+CP