我试图通过验证其他字段和表而不是用户表的电子邮件和密码来生成令牌。我正在使用tymon jwt
库。
我有三个字段需要验证才能验证用户
table::where(["id"=>"1","mobile"=>"123","otp"=>"asdf"])->get();
因此,如果我在表中找到符合此条件的行,那么我想验证用户并生成带有所需声明的有效令牌。
到目前为止我尝试的是:
//after check for three fields in DB. If row matches then, $id and $contact are variable from DB.
$customClaims = ['id' => $id, 'mobile' => $contact];
$payload = JWTFactory::make($customClaims);
尝试此操作时,我得到JWT payload does not contain the required claims
。
因此,如何使用三个字段对用户进行身份验证,并生成包含所需声明和$customClaims
的有效令牌。
public function verifyOTP(Request $request) {
$otp = $request->otp;
$schoolid = $request->schoolid;
$parent_contact = $request->contactNum;
$verifyOTP = OTP::where(['schoolid' => $schoolid, 'parent_numb' => $parent_contact, 'otp' => $otp])->get();
if ($verifyOTP) {
$customClaims = ['schoolid' => $schoolid, 'parent_numb' => $parent_contact];
$payload = JWTFactory::make($customClaims);
$token = JWTAuth::encode($payload);
return $token;
}
}
答案 0 :(得分:2)
在这种情况下,地穴将变得如此方便,我不知道您是否想稍后进行任何身份验证。 Crypt将帮助您加密和解密。
制作特质或任何其他课程,你不必担心加密和解密,地穴可以照顾。我使用地穴
构建了移动API加密: 隐窝::加密($值);
解密: 隐窝::解密($值);