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();
}