删除 token 后, 再次重复删除 token 的请求报以下错误?

1.第一次删除token,请求正常.
2.重复请求, 报下面错误, 如图.
file
感觉报这样错误,不友好吧, 应该提示token无效之类的比较合适.
为啥不报这个异常,明明走到这个里面来了, $this->auth->user()为null,而是报上面的错误"Call to a member function token() on null"
file

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 4
JeffreyBool

我的遇到这个问题了.仔细分析了一下,应该是 控制器调用 如下代码导致的.

...
$this->user()->token()->revoke();
...

解决办法:+1:

控制器改为

public function revoke()
    {
        if(!\Auth::check()){
            throw new UnauthorizedHttpException(get_class($this), 'Unable to authenticate with invalid API key and token.');
        }

        $this->user()->token()->revoke();

        return $this->response->noContent();
    }

PassportDingoProvider.php

 public function authenticate(Request $request, Route $route)
    {
        if (! $user = \Auth::user()) {
            throw new UnauthorizedHttpException(get_class($this), 'Unable to authenticate with invalid API key and token.');
        }

        return $user;
    }

意思很简单,就是未认证用户不能让他继续调用 token()->revoke(); 方法了.就不会出现这个问题了

5年前 评论

@hustnzj ⚠️注意:要use Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException;
不然回报错误:
"message": "Class 'App\Http\Controllers\Api\UnauthorizedHttpException' not found",
"status_code": 500,

5年前 评论
liyu001989

是的 不太友好,算个bug,欢迎pr

5年前 评论

\App\Http\Controllers\Api\AuthorizationsController::destroy

    public function destroy()
    {
        if (! $this->user()) {
            throw new UnauthorizedHttpException(
                get_class($this),
                'Unable to authenticate with invalid API key and token.'
            );
        }
        $this->user()->token()->revoke();
        return $this->response->noContent();
    }
5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!