刷新 token 方法无法返回 Auth::guard ('API')->user () 当前用户吗?

代码报错,求解。。 "message": "get_class() expects parameter 1 to be object, null given",

public function update()
{
    $token = Auth::guard('api')->refresh();
    return $this->respondWithToken($token);
}
    public function respondWithToken($token)
{
    return $this->response->item(Auth::guard('api')->user(), new UserTransformer())
        ->setMeta([
            'access_token' => $token,
            'token_type' => 'Bearer',
            'expires_in' => Auth::guard('api')->factory()->getTTL() * 60,
        ]);
}
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4
liyu001989

首先刷新token为什么要返回用户信息?保存信息完整一点,那个文件第几行错了,可以去看一下代码或者日志一下

6年前 评论

@liyu001989 你说的是文档修改日志吗?貌似没有看到哦,至于为什么刷新token要返回用户信息,因为我的理解,Auth::guard('api')->user()就是返回当前用户实例,既然如此,那么刷新token的时候返回用户信息也应该正常,但是我的代码报错了,所以我在想,是我代码写错额,还是我对Auth::guard('api')->user()理解错误了呢。
学习的态度应该有问题就理清楚,而不是绕过他吧……

6年前 评论

@liyu001989 试了一下,问题是出在refresh token之后获取不到 Auth::guard('api')->user(),不过不是很明白为什么refresh token后获取不到用户实例~

6年前 评论
liyu001989

@wangjiu 不是让你绕过他,是需要站在资源的角度考虑问题 put /authorizations/current 是 authorization 资源,不应该返回用户信息,用户信息应该让客户端通过 token 去请求当前用户详情。

刷新token以后,旧token会被加入黑名单,你真的要这么干,可以提前获取用户

6年前 评论

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