2016-10-01 6 views
0

Мой сайт требует, чтобы учетная запись пользователя активировалась по электронной почте, которая отправляется им, прежде чем они смогут фактически войти в систему, однако метод guard() пытается(), по-видимому, подписывает пользователя до тех пор, пока есть матч. Как я могу просто проверить без входа в систему, чтобы я мог проверить пользователя> проверить, что их учетная запись активна> запустить сеанс пользователя? Текущий код выглядит следующим образом:Laravel Login Attempt Предварительные требования

if ($this->guard()->attempt($credentials, $request->has('remember'))) { 
     // Return response if user match found 
     return $this->checkAccountActive($credentials); 
} 
+0

Скажи ваша ссылка по электронной почте – Komal

ответ

0

Вы используете AuthController?

В случае, если вы можете настроить getCredentials() метод для удовлетворения ваших бизнес-требований, к примеру, если вам нужна электронная почта подтвержденного и статус активного вы могли бы сделать что-то вроде следующего:

protected function getCredentials($request) 
{ 
    return array_merge($request->only(['email', 'password']), ['active' => 1]); 
} 
+0

Я использую Truth AuthenticatesUsers, который поставляется с Laravel 5.3. Я вхожу в систему, используя имя пользователя, пароль и логическое имя «active». Будет ли описанный выше метод работать? –

+0

Найдите AuthController.php в приложении/Http/Controllers/Auth и замените метод getCredentials() выше. –

+1

Ваш метод не работал, но я использовал «$ request-> merge (array ('active' => '1'));" вместо –