1.將驗證碼保存到session
$request->session()->put('validate_code',$validateCode->getCode());
2.在MemberController中獲取session的值
$validate_code_session = $request->session()->get('validate_code','');
if ($validate_code_session != $validate_code) {
$m3_result->status = 8;
$m3_result->message = "驗證碼不正確";
return $m3_result->toJson();
}
- laravel框架中的session會加密,不要用常規(guī)PHP方法獲取session,不然比較結果會不一樣。
3.配置郵箱環(huán)境變量
在.env文件中進行配置
MAIL_DRIVER=smtp
MAIL_HOST=stmp.163.com
MAIL_PORT=25
MAIL_USERNAME=XXXX@163.com
MAIL_PASSWORD=XXX //自己設置的校驗碼
MAIL_ENCRYPTION=null

image.png
4.調(diào)用laravel中 mail::send()接口
Mail::send('emails.reminder', ['user' => $user], function ($m) use ($user) {
$m->from('hello@app.com', 'Your Application');
$m->to($user->email, $user->name)->subject('Your Reminder!');
});
- emails_reminder 郵件提示內(nèi)容
5.在models中設置email格式
<?php
namespace App\Models;
class M3Email {
public $from; // 發(fā)件人郵箱
public $to; // 收件人郵箱
public $cc; // 抄送
public $attach; // 附件
public $subject; // 主題
public $content; //
}
6.在MemberController中調(diào)用M3Email
$m3_email = new M3Email;
$m3_email->to = $email;
$m3_email->cc = 'XXXX@qq.com';
$m3_email->subject = "大帥逼驗證";
$m3_email->content = '請于24小時內(nèi)完成驗證 http://localhost:8000/service/validate_email'
. '?member_id=' . $member->id
. '&code=' . $uuid;
7.設置UUID
<?php
namespace App\Tool;
class UUID{
static function create($prefix = ''){
$str = md5(uniqid(mt_rand(), true));
$uuid = substr($str,0,8);
$uuid .= substr($str,8,4);
$uuid .= substr($str,12,4);
$uuid .= substr($str,16,4);
$uuid .= substr($str,20,12);
return $prefix . $uuid;
}
}
8.在ValidateController中驗證信息
public function validateEmail(Request $request)
{
$member_id = $request->input('member_id','');
$code = $request->input('code','');
if ($member_id == '' || $code == '') {
return "驗證異常";
}
$tempEmail = tempEmail::where('member_id',$member_id)->first();
if ($tempEmail == null) {
return "驗證異常";
}
if ($tempEmail->code = $code) {
if(time()>strtotime($tempEmail->deadline)){
return "鏈接失效1";
}
$member = Member::find($member_id);
$member->active = 1;
$member->save();
return redirect('/login');
}else{
return "鏈接失效2";
}
}