wxbacy / yarsign
yar 的签名库,使使用 yar 的服务更安全
v1.0
2020-08-12 02:36 UTC
Requires
- php: >=5.4
- ext-yar: *
This package is not auto-updated.
Last update: 2024-09-18 22:41:11 UTC
README
yar 的签名库,使使用 yar 的服务更安全
要求
PHP 5.4+ 和 YAR 扩展已安装
开始使用
通过 composer 安装
将 Yarsign 添加到 composer.json 配置文件中。
$ composer require wxbacy/yarsign
// If you installed via composer, just use this code to requrie autoloader on the top of your projects. require 'vendor/autoload.php'; // Using Yarsign namespace use Yarsign\Conf; use Yarsign\Client; // Initialize Conf::load([ 'user' => [ 'service_address' => 'http://userservice.com/rpc/index', 'secret' => '1532YADJas', ], 'mall' => [ 'service_address' => 'http://mallservice.com/rpc/index', 'secret' => '1532YADJas', ], ]); // Server // 以下写在控制器 $serviceStr = $_GET['service']; $ts = $_GET['ts']; $sign = $_GET['sign']; // 解密 $service = Sign::serviceDecode($serviceStr); // 身份认证 if (! Sign::checkSign($service['service'], $service['class'], $ts, $sign)) { return; } $server = new Yar_Server(new $service['class']()); $server->handle(); // Client $userModel = Client::getInstance('user', 'UserModel'); $userModel->getUserByUserid(156562); $userDetail = []; Client::concurrentCall('user', 'UserModel', 'getUserByUserid', [156562], function($retval, $callinfo) use (&$userDetail){ if ($callinfo == NULL) { return true; } $userDetail['username'] = $retval['username']; $userDetail['gender'] = $retval['gender']; }); Client::concurrentCall('user', 'UserModel', 'getUserAccount', [156562], function($retval, $callinfo) use (&$userDetail){ if ($callinfo == NULL) { return true; } $userDetail['balance_lyb'] = $retval['balance_lyb']; $userDetail['balance_mb'] = $retval['balance_mb']; }); Yar_Concurrent_Client::loop();