Как добавить условия в laravel auth - PullRequest
1 голос
/ 20 июня 2019

Я использую Laravel 5.8.

Я хочу добавить email_verified_at != null OR phone_number_verified_at != null в аутентификации.

Как мне это сделать?

Ответы [ 2 ]

1 голос
/ 20 июня 2019

Используйте это в web.php route Auth::routes(['verify' => true]); Прочитайте эту ссылку https://laravel.com/docs/5.8/verification#verification-routing

если вы используете этот чек, адрес электронной почты подтвержден или нет Auth::routes(['verify' => true]);

Если вы хотите больше узнать об этом пути в проекте laravel \vendor\laravel\framework\src\Illuminate\Auth и увидеть черту MustVerifyEmail

public function hasVerifiedEmail()
{
    return ! is_null($this->email_verified_at);
}

Вы пытаетесь проверить оба

переопределить один метод

    public function hasVerifiedEmail()
{
    if (!is_null($this->phone_verified_at) && !is_null($this->email_verified_at)) {
        return 1;
    }
}

2. шаг перейти к VerificationController

    /**
 * Show the email verification notice.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function show(Request $request)
{
    $user = Auth::user();
    if (is_null($user->email_verified_at)) {
        return view('auth.verify');
    }elseif (is_null($user->phone_verified_at)) {
        return redirect("phone_verify");
    }else{
         return redirect($this->redirectPath());
    }
}

перейти к web.php создать маршрут для проверки телефона

Route::get('phone_verify',function(){
   dd("not verify");
});
0 голосов
/ 20 июня 2019

Добавить attemptLogin функцию в LoginController, эта функция вызывается laravel для аутентификации

protected function attemptLogin(Request $request)
{
    $valid = $this->guard()->attempt(
        $this->credentials($request), $request->filled('remember')
    );
    if($valid){
        $user = $this->guard()->user();
        if($user->email_verified_at == null && $user->phone_number_verified_at  == null ){
            $this->guard()->logout();
            $request->session()->invalidate();
            return false;
        }
    }
    return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...