7.郵件發(fā)送&賬戶激活

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";
        }
    }
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • feisky云計算、虛擬化與Linux技術筆記posts - 1014, comments - 298, trac...
    不排版閱讀 4,354評論 0 5
  • 模塊間聯(lián)系越多,其耦合性越強,同時表明其獨立性越差( 降低耦合性,可以提高其獨立性)。軟件設計中通常用耦合度和內(nèi)聚...
    riverstation閱讀 2,222評論 0 8
  • 一. 說明 以下內(nèi)容大部分引用Laravel China社區(qū)的文章 - 分享下團隊的開發(fā)規(guī)范 ——《Laravel...
    knghlp508閱讀 8,015評論 0 28
  • 介紹 Laravel 是一款 MVC架構、 目前最流行的 PHP框架。 Laravel的優(yōu)點在于: 豐富的comp...
    那就遠走閱讀 8,187評論 3 18
  • 過去做事情急,什么東西拿起來就用,不喜歡進行系統(tǒng)性的學習,造成在使用過程中的錯誤和低效,現(xiàn)在感覺自己耐心多了,用之...
    馬文Marvin閱讀 2,080評論 0 10

友情鏈接更多精彩內(nèi)容