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)哪里有问题了,为什么获取不到用户信息哪,我需要怎么修改?

3 天前提问
0 个回答

撰写答案

推广链接