WorkermanHandle.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Admin 消息处理类
  4. // +----------------------------------------------------------------------
  5. namespace app\services\workerman;
  6. use Workerman\Connection\TcpConnection;
  7. class WorkermanHandle
  8. {
  9. protected $service;
  10. public function __construct(WorkermanService &$service)
  11. {
  12. $this->service = &$service;
  13. }
  14. /**
  15. * 管理员登录
  16. */
  17. public function login(TcpConnection &$connection, array $res, Response $response)
  18. {
  19. if (!isset($res['data']) || !$token = $res['data']) {
  20. return $response->close(['msg' => '授权失败!']);
  21. }
  22. // TODO: 根据你的系统实现token验证
  23. // 示例:$authInfo = your_auth_service::parseToken($token);
  24. // 临时示例:直接接受登录
  25. $authInfo = [
  26. 'id' => $res['data']['id'] ?? 1,
  27. 'name' => $res['data']['name'] ?? 'Admin',
  28. ];
  29. if (!$authInfo || !isset($authInfo['id'])) {
  30. return $response->close(['msg' => '授权失败!']);
  31. }
  32. $connection->adminInfo = $authInfo;
  33. $connection->adminId = $authInfo['id'];
  34. $this->service->setUser($connection);
  35. return $response->success();
  36. }
  37. }