Hyperf框架创建json-rpc服务
发布日期:2021-05-27 00:20:17 浏览次数:48 分类:精选文章

本文共 1465 字,大约阅读时间需要 4 分钟。

我们需要创建一个用户服务供其他服务调用,以实现认证和鉴权。这个服务将通过JSON-RPC协议提供接口,并在9504端口上监听。完成后,我们可以使用Postman进行测试。

配置Json-Rpc服务

首先,我们在配置文件中添加一个Json-Rpc服务监听项。具体配置如下:

{    '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'],    ],}

服务接口

服务接口为/user/checkToken,接收两个参数:一个是token,另一个是权限。此方法首先验证token是否有效。验证成功后,将返回用户详情;如果验证失败,会返回错误信息。

请求示例(使用Postman发送):

{    "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私有网络中,外部是无法访问的。这些内容将在后续的教程中详细讲述。

上一篇:eidos空投矿机免费开源
下一篇:Hyperf框架使用JWT进行用户认证

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年05月07日 08时25分58秒