Php Lumen:JWT无用户身份验证表

Php Lumen:JWT无用户身份验证表,php,laravel,authentication,jwt,lumen,Php,Laravel,Authentication,Jwt,Lumen,简而言之,我收到以下错误: { "message": "Undefined index: password", "status_code": 500 } { "message": "Undefined index: password", "status_code": 500 } liitle背景: { "message": "Undefined index: password", "status_code": 500 } { "message": "Undefi

简而言之,我收到以下错误:

{
  "message": "Undefined index: password",
  "status_code": 500
}
{
  "message": "Undefined index: password",
  "status_code": 500
}
liitle背景:

{
  "message": "Undefined index: password",
  "status_code": 500
}
{
  "message": "Undefined index: password",
  "status_code": 500
}
我有一个
users
表和一个
pincodes
表,
users
表有两列
mobile\u number
,和
status
,我向users表中的mobile number发送短信,短信有一个密码,然后我将该密码与
user\u id
一起保存在
pincodes>表中

因此,身份验证将应用于
pincodes
,其中我有
user\u id
code
,以验证用户是否真实。我使用的是lumen micro framework,带有JWT认证。因此,我将我的
Pincode
模型更改为与
User
模型相同的模型

namespace App;

use Illuminate\Auth\Authenticatable;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Database\Eloquent\Model;
use Laravel\Lumen\Auth\Authorizable;

class Pincode extends Model implements
AuthenticatableContract,
AuthorizableContract {
    use Authenticatable, Authorizable;

    protected $table = 'pincodes';
    public function user() {
        return $this->belongsTo('App\User');
    }
}
验证方法请求类型为post(如下所示),参数为
user\u id
code
。我提供的信息是正确的

以及令牌应该生成的验证方法:

public function verify(Request $request) {
  $uid = $request->get('uid');
  $pinCode = $request->get('code');

  $findPinCode = \App\Pincode::where('uid', $uid)->where('code', $pinCode)->first();
  if (!$findPinCode) {
      return response()->json([
          'message' => 'No pin Code found',
          'code' => 404,
      ]);
  }

  $findPinCode->status = 'v';
  $findPinCode->dateVerify = Carbon::now();

  $findPinCode->save();

  try {

      $this->validatePostLoginRequest($request);

  } catch (HttpResponseException $e) {
      return $this->onBadRequest();
  }

  try {
      if (!$token = JWTAuth::attempt(
          $this->getCredentials($request)
      )) {
          return 'asdasd';
          return $this->onUnauthorized();
      }
  } catch (JWTException $e) {
      return $this->onJwtGenerationError();
  }
我收到以下错误:

{
  "message": "Undefined index: password",
  "status_code": 500
}
{
  "message": "Undefined index: password",
  "status_code": 500
}

您使用的代码库使用了
tymondesigns/jwtauth
包。默认情况下,
JWTAuth::trunt
方法使用电子邮件和密码

最简单的方法是通过pincode手动验证用户,并使用
JWTAuth::fromUser

$user = User::find($uid);

try {
    if (!$token = JWTAuth::fromUser($user)) {
        return $this->onUnauthorized();
    }
} catch (JWTException $e) {
    return $this->onJwtGenerationError();
}