首页 > 解决方案 > 未定义索引:当 JWT 使用手机号码作为凭据进行身份验证时,EloquentUserProvider.php 第 126 行中的密码

问题描述

这是我的用户登录功能,

  public function userLogin(Request $request){
        $login_type = $request->input('login_type');
        if(!$login_type){
          return response()->json(['status'=>false,'message'=>'Login type is required']);
        }

        $input = $request->all();
        $login_fb_status = $request->input('fb_login_status');
        $array = array();
        if($login_fb_status){
           $facebook_id = $request->input('facebook_id');
           if(!$facebook_id){
            return response()->json(['status'=>false,'message'=>'facebook id is required']);
           }else{
            $user_details = User::where('facebook_id',$facebook_id)->first();
            if(count($user_details) <= 0){
                return response()->json(['status'=>false,'message'=>'Facebook id does not exist']);
            }
            $user_id = $user_details->id;
           }
           $credentials = array('user_id'=>$user_id);
           //$credentials = $request->only('facebook_id');
           $login_fb_status = 1;
        }else{
          if($login_type == 'phone_no'){
            $credentials = $request->only('phone_no');
          }else if($login_type == 'email'){
            $credentials = $request->only('email', 'password');
          }
          $login_fb_status = 0;
        }  
        $token = null;
        try {
           if (!$token = JWTAuth::attempt($credentials,$array,$login_fb_status)) {
            return response()->json(['status'=>false,'message'=>'Invalid Credentials'], 422);
           }
        } catch (JWTAuthException $e) {

            return response()->json(['failed_to_create_token'], 500);
        }
        $user = JWTAuth::toUser($token);
        $account_status=$user->user_status;
        return response()->json(['status' => true,'account_status'=>$account_status,'logged_user_details' => $user,'token'=>$token]);
        // return response()->json(compact('token'));
    }

尝试使用移动设备作为凭据登录时出现错误(在我的应用程序中移动登录不需要密码)但是当我尝试使用电子邮件和密码时它可以正常工作,我使用的是 Laravel 5.4,相同的代码在共享中完美地用于移动登录托管,但不在数字海洋中工作

标签: laraveloauthjwtdigital-ocean

解决方案


推荐阅读