<code>Auth::attempt(array('username' => $username, 'password' => $password),false) </code>
이것의 비밀번호는 본인이 정의한 방법으로 암호화됩니다
<code>Auth::attempt(array('username' => $username, 'password' => $password),false) </code>
이것의 비밀번호는 본인이 정의한 방법으로 암호화됩니다
문서는 실제로 작성되지 않았지만 소스코드를 보면 알 수 있습니다
Auth 메소드 구현은 IlluminateAuthGuard
<code> /** * Attempt to authenticate a user using the given credentials. * * @param array $credentials * @param bool $remember * @param bool $login * @return bool */ public function attempt(array $credentials = [], $remember = false, $login = true) { $this->fireAttemptEvent($credentials, $remember, $login); $this->lastAttempted = $user = $this->provider->retrieveByCredentials($credentials); // 看这里 // If an implementation of UserInterface was returned, we'll ask the provider // to validate the user against the given credentials, and if they are in // fact valid we'll log the users into the application and return true. if ($this->hasValidCredentials($user, $credentials)) { if ($login) { $this->login($user, $remember); } return true; } return false; } /** * Determine if the user matches the credentials. * * @param mixed $user * @param array $credentials * @return bool */ protected function hasValidCredentials($user, $credentials) { // 执行认证驱动器的validCredentials方法 return ! is_null($user) && $this->provider->validateCredentials($user, $credentials); }</code>
기본값은 eloquent를 인증 드라이버로 사용하는 것이므로 내부 구현을 살펴보세요IlluminateAuthEloquentUserProvider
<code> public function validateCredentials(UserContract $user, array $credentials) { $plain = $credentials['password']; return $this->hasher->check($plain, $user->getAuthPassword()); }</code>
따라서 확인 논리를 변경하려면 원래 드라이버를 상속한 다음 verifyCredentials에서 논리를 다시 작성하면 됩니다.
<code>class TestUserProvider extend EloquentUserProvider { public function validateCredentials(UserContract $user, array $credentials) { $plain = $credentials['password']; return md5($plain) == $user->getAuthPassword(); } }</code>
마지막으로 드라이버를 설정합니다. AppServiceProvider의 boot()를 로드하는 것이 좋습니다
<code>Auth::setProvider(new TestUserProvider());</code>
문서에 적혀있어요! 너무 게으르지 말고 문서를 읽어보세요. 최근에 질문하신 내용이 모두 문서에 적혀 있습니다.