我在api模块使用会员功能,会员登陆成功后,在后台将会员禁用,这时候会员刷新界面就会进入死循环

我在api模块使用会员功能,会员登陆成功后,在后台将会员禁用,这时候会员刷新界面就会进入死循环
我这边的流程是:
1.会员登陆
2.后台禁用会员
3.会员使用token请求接口返回303
4.token过期,使用refreshToken去交换token
5.会员使用token请求接口返回303
6.无限循环......
有啥解决办法吗😂
我找了好久中间件没找到在哪里修改,求各位大佬指点
我的想法解决方案:会员禁用返回一个单独的状态码。

1个回答默认排序 投票数排序
YANG001
YANG001
这家伙很懒,什么也没写~
3天前

感谢反馈~
会员被禁用时返回单独状态码只需在检查状态时调用$this->error并自定义状态码参数即可

weinizhibi
weinizhibi回复YANG001
这家伙很懒,什么也没写~
3天前

检测token过期的中间件是哪个

YANG001
YANG001回复weinizhibi
这家伙很懒,什么也没写~
1天前

检查token过期没有中间件,过期了就是请求不到资源而已

YANG001
YANG001回复weinizhibi
这家伙很懒,什么也没写~
1天前

死循环的问题未能复现哈,当会员状态被禁用,303是需要登录了,会员登录态将被直接注销,不会造成死循环

weinizhibi
weinizhibi回复YANG001
这家伙很懒,什么也没写~
1天前
复制代码
if ($tokenData) {

            /**
             * 过期检查,过期则抛出 @see TokenExpirationException
             */
            Token::tokenExpirationCheck($tokenData);

            $userId = intval($tokenData['user_id']);
            if ($tokenData['type'] == self::TOKEN_TYPE && $userId > 0) {
                $this->model = User::where('id', $userId)->find();
                if (!$this->model) {
                    $this->setError('Account not exist');
                    return false;
                }
                if ($this->model->status != 'enable') {
//这里返回禁用状态码吗
//直接$this->error拿不到,要添加函数,自己改造一下
                    $this->setError('Account disabled');
                    return false;
                }
                $this->token = $token;
                $this->loginSuccessful();
                return true;
            }
        }
请先登录
0
1
0
5