메뉴 건너뛰기

intercept에 관한 질문입니다.

        intercept(
            \Xpressengine\User\Guard::class . '@attempt',
            'loginlog_auth_:attempt',
            function ($func, array $credentials = [], $remember = false) {
                $result = $func($credentials, $remember);
                
                $user = \Auth::user();

                $res = new \WhichBrowser\Parser($_SERVER['HTTP_USER_AGENT']);

                // 로그인 후
                if ($result == false)
                {
                    // 로그인 실패
                    \XeDB::table('loginlog')->insert(
                        ['user_id' => $user->getId(),
                         'display_name' => $user->getDisplayName(),
                         'email' => isset($user->email) ? $user->email : 'Unknown',
                         'ipaddress' => \Request::ip(),
                         'is_succeed' => 'N',
                         'platform' => $res->os->toString(),
                         'browser' => $res->browser->toString()
                        ]
                    );
                }

                return $result;
            }
        )

intercept로 로그인 기록을 남기고 있는데요. user_id 필드는 not null로 되어 있습니다.
이메일 주소만 맞고 비밀번호만 틀린 경우, $user->getId()를 호출하면 null 값이 return 되어, Database Error가 나타나게 됩니다.

비밀번호만 틀린 경우, user_id 값을 가져올 수 있는 방법이 있을까요?

포럼의 다른 글