12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- <?php
- namespace crmeb\services\workerman;
- use crmeb\exceptions\AuthException;
- use crmeb\repositories\AdminRepository;
- use Workerman\Connection\TcpConnection;
- class WorkermanHandle
- {
- protected $service;
- public function __construct(WorkermanService &$service)
- {
- $this->service = &$service;
- }
- public function login(TcpConnection &$connection, array $res, Response $response)
- {
- if (!isset($res['data']) || !$token = $res['data']) {
- return $response->close([
- 'msg' => '授权失败!'
- ]);
- }
- try {
- $authInfo = AdminRepository::adminParseToken($token);
- } catch (AuthException $e) {
- return $response->close([
- 'msg' => $e->getMessage(),
- 'code' => $e->getCode()
- ]);
- }
- if (!$authInfo || !isset($authInfo['id'])) {
- return $response->close([
- 'msg' => '授权失败!'
- ]);
- }
- $connection->adminInfo = $authInfo;
- $connection->adminId = $authInfo['id'];
- $this->service->setUser($connection);
- return $response->success();
- }
- }
|