WorkermanHandle.php 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace crmeb\services\workerman;
  3. use think\facade\Middleware;
  4. use think\facade\Session;
  5. use Workerman\Connection\TcpConnection;
  6. class WorkermanHandle
  7. {
  8. protected $service;
  9. public function __construct(WorkermanService &$service)
  10. {
  11. $this->service = &$service;
  12. }
  13. public function login(TcpConnection &$connection, array $res, Response $response)
  14. {
  15. if (!isset($res['data']) || !$sessionId = $res['data']) {
  16. return $response->close([
  17. 'msg' => '授权失败!'
  18. ]);
  19. }
  20. $session = app('session',[],true);
  21. $session->init();
  22. $session->setId($sessionId);
  23. $session->start();
  24. if (!$session->has('adminId') || !$session->has('adminInfo')) {
  25. return $response->close([
  26. 'msg' => '授权失败!'
  27. ]);
  28. }
  29. $connection->adminInfo = $session->get('adminInfo');
  30. $connection->sessionId = $sessionId;
  31. $this->service->setUser($connection);
  32. return $response->success();
  33. }
  34. }