流明生成令牌而不验证用户名和密码

时间:2018-04-15 14:22:03

标签: laravel jwt lumen

我试图通过验证其他字段和表而不是用户表的电子邮件和密码来生成令牌。我正在使用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;
    }
}

1 个答案:

答案 0 :(得分:2)

在这种情况下,地穴将变得如此方便,我不知道您是否想稍后进行任何身份验证。 Crypt将帮助您加密和解密。

制作特质或任何其他课程,你不必担心加密和解密,地穴可以照顾。我使用地穴

构建了移动API

加密: 隐窝::加密($值);

解密: 隐窝::解密($值);

更多信息:https://laravel.com/docs/5.2/encryption