Как отправить подтверждение по электронной почте с помощью встроенной в Laravel системы проверки с помощью Gmail - PullRequest
0 голосов
/ 18 мая 2019

При регулярных регистрациях пользователь получит письмо с подтверждением. Но пользователи Gmail не получают электронное письмо, пока не нажмут кнопку повторной отправки.

Как заставить пользователей gmail получать подтверждающее электронное письмо, не нажимая кнопку повторной отправки при регистрации?

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\User;
use Socialite;
use Auth;
use Exception;


class GoogleAuth extends Controller
{
    public function redirectToProvider()
    {
        return Socialite::driver('google')->redirect();
    }

    public function handleProviderCallback()
    {
        try {
            $googleUser = Socialite::driver('google')->user();
            $existUser = User::where('email', $googleUser->email)->first();

            if ($existUser) {
                Auth::loginUsingId($existUser->id);
            } else {
                $user = new User;
                $user->name = $googleUser->name;
                $user->email = $googleUser->email;
                $user->google_id = $googleUser->id;
                $user->password = md5(rand(1, 10000));
                $user->save();
                Auth::loginUsingId($user->id);
            }
            return redirect()->to('/home');
        } catch (Exception $e) {
            return 'error';
        }
    }
}[![enter image description here][1]][1]


  [1]: https://i.stack.imgur.com/gt4tM.png

1 Ответ

0 голосов
/ 19 мая 2019

Но 2 флага в БД, проверено и is_email_sent.Когда пользователь входит в систему, проверьте, не подтвержден ли он, отправьте электронное письмо, если is_email_sent false, в противном случае войдите в систему пользователя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...