天天看點

郵箱驗證【laravel篇】

首先郵箱驗證,無非就是現在挺常見的一種驗證方式,判斷你有沒有權限登陸,或者是否有權執行下一步等等

思路: 現在做的是一個注冊,當注冊完成之後,我們會向郵箱發送一個連結,點選這個連結之後才有權限登陸,我在資料庫設定了一個token,當建立賬号完成之後,存到資料庫一個加密的郵箱格式,然後做判斷  接下來我做一個簡單的供參考

代碼如下  這是注冊發郵件的一個流程  用laravel裡面的Mail  先use引入一下Mail use Mail

public function send_reg(Request $request)
	{
		// 判斷頁面
		if($request->isMethod('post')){

			// 擷取全部
			$rel = $request->all();
			// SQL語句檢視手機号
			$tel = DB::table('pl_user')->where('tel',$rel['tel'])->first();
			// 判斷是否手機号重複
			if($tel){
            return "手機号已注冊";

			}else{
			//擷取表的字尾
            $file = $request->file('file');
            // 傳回上傳檔案的擴充名稱
            $ext = $file->getClientOriginalExtension();
            // 給圖檔一個時間+随機數字首
            $filename=date('Y-m-dHis').rand(111111,999999).'.'.$ext;
            // 建立存圖檔目錄
            $path=$file->move("./senduser/",$filename);       
            // 轉義
			$arr['username']=$rel['username'];
			$arr['pwd']=md5($rel['pwd']);
			$arr['tel']=$rel['tel'];
			$arr['email']=$rel['email'];
			$arr['file']="/".$filename; 
			$arr['token']=md5($rel['email']);
			// 添加執行
			$info = DB::table('pl_user')->insert($arr);
			// 發郵件
			if($info){
				$email = $rel['email'];
				$token = $arr['token'];
				$url = "http://www.laravel55.com/checkMail?token=$token";
				Mail::send('sendlogin.emailindex',['url'=>$url],function($message)use ($email){
	    		$message->from('[email protected]','評論中心');
	    		$message->subject("歡迎您,注冊成功");
	    		$message->to($email);
	   	    	});
	   	    	return redirect('send_login');
			}else{
				return "郵箱發送失敗";
			}
        }
		}else{
			return view('sendlogin.send_reg');
		}
	}
           

接下來是郵箱驗證的方法

//校驗郵箱token
	public function checkMail()
	{
		//接收傳遞過來的token
		$token = $_GET['token'];


		$res = DB::table('pl_user')->where('token',$token)->first();

		if(empty($res)){
			return  redirect('send_login');
		}else{
		$id = $res->uid;
		$res = DB::table('pl_user')->where('uid',$id)->update(['token'=>'']);
		return redirect('send_login');
		}

           

靜态頁面

<!DOCTYPE html>
<html >
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<table >
      <h1><i>恭喜您,注冊成功</i></h1>
      <h2>請點選一下連接配接進行激活賬号</h2>
     <br/>
      {{$url}}
	</table>
</body>
</html>
           

繼續閱讀