1 2 | <code>Auth::attempt( array ( 'username' => $username , 'password' => $password ),false)
</code>
|
로그인 후 복사
로그인 후 복사
이것의 비밀번호는 본인이 정의한 방법으로 암호화됩니다
답글 내용:
1 2 | <code>Auth::attempt( array ( 'username' => $username , 'password' => $password ),false)
</code>
|
로그인 후 복사
로그인 후 복사
이것의 비밀번호는 본인이 정의한 방법으로 암호화됩니다
문서는 실제로 작성되지 않았지만 소스코드를 보면 알 수 있습니다
Auth 메소드 구현은 IlluminateAuthGuard
에 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | <code>
public function attempt( array $credentials = [], $remember = false, $login = true)
{
$this ->fireAttemptEvent( $credentials , $remember , $login );
$this ->lastAttempted = $user = $this ->provider->retrieveByCredentials( $credentials );
if ( $this ->hasValidCredentials( $user , $credentials )) {
if ( $login ) {
$this ->login( $user , $remember );
}
return true;
}
return false;
}
protected function hasValidCredentials( $user , $credentials )
{
return ! is_null ( $user ) && $this ->provider->validateCredentials( $user , $credentials );
}</code>
|
로그인 후 복사
기본값은 eloquent를 인증 드라이버로 사용하는 것이므로 내부 구현을 살펴보세요IlluminateAuthEloquentUserProvider
1 2 3 4 5 6 | <code> public function validateCredentials(UserContract $user , array $credentials )
{
$plain = $credentials [ 'password' ];
return $this ->hasher->check( $plain , $user ->getAuthPassword());
}</code>
|
로그인 후 복사
따라서 확인 논리를 변경하려면 원래 드라이버를 상속한 다음 verifyCredentials에서 논리를 다시 작성하면 됩니다.
1 2 3 4 5 6 7 8 9 | <code> class TestUserProvider extend EloquentUserProvider
{
public function validateCredentials(UserContract $user , array $credentials )
{
$plain = $credentials [ 'password' ];
return md5( $plain ) == $user ->getAuthPassword();
}
}</code>
|
로그인 후 복사
마지막으로 드라이버를 설정합니다. AppServiceProvider의 boot()를 로드하는 것이 좋습니다
1 | <code>Auth::setProvider( new TestUserProvider());</code>
|
로그인 후 복사
문서에 적혀있어요! 너무 게으르지 말고 문서를 읽어보세요. 최근에 질문하신 내용이 모두 문서에 적혀 있습니다.