javascript - 如何使用 laravel 内置的 Gmail 验证系统发送验证电子邮件
问题描述
通过定期注册,用户将收到一封验证电子邮件。但是 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
解决方案
但是数据库中有 2 个标志,已验证和 is_email_sent。用户登录时检查是否已验证,如果 is_email_sent 为 false,则发送电子邮件,否则登录用户
推荐阅读
- css - 如何隔离 Vuetify 全局样式
- sql-server - 内存优化表的统计信息和本机编译的存储过程的查询计划的问题
- windows - 难以处理来自 sys.stdin 的 Unicode
- python - 熊猫计算两个零之间不为零的值的数量
- google-kubernetes-engine - 在 google Kubernetes 中分配安全上下文
- javascript - 如何将信息直接从 EC2 输出到文件(例如 .txt 或 .json)?
- android - 如何在同一包下的 android studio 中发布两个 apk?
- linux - 是否有不使用 shell 将其命令行参数写入文件的 Linux 命令?
- python - 使用延迟屏幕空间贴花系统的边界检查问题
- scala - 在日期列比较上过滤 DataFrame