123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- <?php
- namespace app;
- // 应用请求对象类
- use catchAdmin\permissions\model\Users;
- use catcher\CatchAuth;
- use catcher\Code;
- use catcher\exceptions\FailedException;
- use catcher\exceptions\LoginFailedException;
- use thans\jwt\exception\TokenBlacklistException;
- use thans\jwt\exception\TokenExpiredException;
- use thans\jwt\exception\TokenInvalidException;
- class Request extends \think\Request
- {
- protected $auth;
- /**
- * login user
- *
- * @time 2020年01月09日
- * @param null $guard
- * @return mixed
- */
- public function user($guard = null)
- {
- if (!$this->auth) {
- $this->auth = new CatchAuth;
- }
- try {
- $user = $this->auth->guard($guard ? : config('catch.auth.default.guard'))->user();
- if ($user->status == Users::DISABLE) {
- throw new LoginFailedException('该用户已被禁用', Code::USER_FORBIDDEN);
- }
- } catch (\Exception $e) {
- if ($e instanceof TokenExpiredException) {
- throw new FailedException('token 过期', Code::LOGIN_EXPIRED);
- }
- if ($e instanceof TokenBlacklistException) {
- throw new FailedException('token 被加入黑名单', Code::LOGIN_BLACKLIST);
- }
- if ($e instanceof TokenInvalidException) {
- throw new FailedException('token 不合法', Code::LOST_LOGIN);
- }
- throw new FailedException('认证失败: '. $e->getMessage(), $e->getCode());
- }
- return $user;
- }
- }
|