laravel jwt 接口的问题

发布于 2022-09-11 19:54:33 字数 1618 浏览 16 评论 0

使用laravel+dingo+jwt做接口开发

获取用户信息接口

    public function me(){
        //new UserTransformer 为transform层可忽略
        return $this->response->item($this->user(),new UserTransformer());
    }

为了方便测试,使用自定命令生成了一个长期的token,代码如下(1):

    public function handle()
    {
        //
        $userId=$this->ask('输入用户id');
        $user=User::find($userId);
        if(!$user){
          return $this->error('用户不存在');
        }
        $ttl=365*24*60;
        $this->info(\Auth::guard('api')->setTTL($ttl)->fromUser($user));

    }

将该命令生成的token 填入postman中,每次都提示下图结果

clipboard.png

clipboard.png

但是用正常获取token接口得到token值, 去测试获取用户信息接口,返回是正常的。

附正常的接口获取代码

    public function store(AuthRequest $request)
    {
        //传入两个参数username,password.这里username 可能有是邮箱或者电话,需要判断一下
        $username = $request->username;
        filter_var($username, FILTER_VALIDATE_EMAIL) ? $credentials['email'] = $username : $credentials['phone'] = $username;
        $credentials['password'] = $request->password;
        $token = \Auth::guard('api')->attempt($credentials);
        if (!$token) {
            return $this->response->errorUnauthorized('用户名密码不正确');
        }
        //这里定义一个通用的返回信息函数
        return $this->authResult($token)->setStatusCode(200);
    }

我用命令生成测试token的这段代码(1)哪里有问题了,为什么获取不到用户信息哪,我需要怎么修改?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文