1. 程式人生 > >JWT 多欄位驗證 laravel

JWT 多欄位驗證 laravel

沒有改原始碼,還是用的mobile欄位。在登入前加了一段邏輯

舉例:shou_ji 手機號 email 郵箱兩個欄位登入,查詢資料庫,並驗證密碼,然後修改對應使用者的mobile欄位。然後正常走後面的流程

    /**
     * 查詢使用者是否存在,並修改user表的mobile欄位為對應的name值
     *
     * @author Eric
     * @param $params 
     * @return bool
     */
    public function verify_update($params)
    {
        // 查詢使用者資訊是否存在
        $user = new User();
        $data = DB::table('users')->where(function ($query) use($params){
            $query->orWhere('shou_ji', $params['name']);
            $query->orWhere('email', $params['name']);
        })->select('id','password','shou_ji','openid','email')->first();
        if($data)
        {
            // 密碼驗證
            if(!Hash::check($params['password'],$data->password))
            {
                return false;
            }
            else
            {
                $user->where('id', $data->id)->update([
                    'mobile' => $params['name']
                ]);
                return true;
            }
        }
        else
        {
            return false;
        }
    }