/** * 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; } }