/**
  * Validate a user against the given credentials.
  *
  * @param  \Illuminate\Contracts\Auth\Authenticatable $user
  * @param  array $credentials
  * @return bool
  */
 public function validateCredentials(Authenticatable $user, array $credentials)
 {
     $credentials = self::initCredentials($credentials);
     /**
      * 第三方登录不验证credential, 本地用户验证密码
      */
     if (in_array($credentials['type'], ['email', 'username', 'phone'])) {
         $userAuth = UserAuth::where('user_id', $user->id)->where('type', $credentials['type'])->first();
         if ($this->hasher->check($credentials['credential'], $userAuth->credential)) {
             $userAuth->touch();
             return true;
         } else {
             return false;
         }
     } else {
         return true;
     }
 }