laravel的用戶修改密碼與綁定郵箱的詳細(xì)操作_第1頁(yè)
laravel的用戶修改密碼與綁定郵箱的詳細(xì)操作_第2頁(yè)
laravel的用戶修改密碼與綁定郵箱的詳細(xì)操作_第3頁(yè)
laravel的用戶修改密碼與綁定郵箱的詳細(xì)操作_第4頁(yè)
laravel的用戶修改密碼與綁定郵箱的詳細(xì)操作_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第laravel的用戶修改密碼與綁定郵箱的詳細(xì)操作目錄一、修改密碼1.1創(chuàng)建修改密碼控制器1.2創(chuàng)建修改密碼路由1.3測(cè)試效果二、綁定郵箱2.1綁定郵箱控制器2.2創(chuàng)建對(duì)應(yīng)路由2.3創(chuàng)建發(fā)送郵件的類2.4測(cè)試效果

一、修改密碼

1.1創(chuàng)建修改密碼控制器

運(yùn)行命令phpartisanmake:controllerAuth/PasswordController

寫入修改密碼方法:

*修改密碼

publicfunctionupdatePassword(Request$request){

$request-validate([

'old_password'='required|min:6|max:16',

'password'='required|min:6|max:16|confirmed',

],[

'old_password.required'='舊密碼不能為空',

'old_password.min'='舊密碼最少6個(gè)字符',

'old_password.max'='舊密碼最多16個(gè)字符',

//舊密碼

$old_password=$request-input('old_password');

//用戶實(shí)例

$user=auth('api')-user();

//驗(yàn)證舊密碼是否正確

if(!password_verify($old_password,$user-password)){

return$this-response-errorBadRequest('舊密碼不正確');

//更新用戶密碼

$user-password=bcrypt($request-input('password'));

$user-save();

return$this-response-noContent();

}

1.2創(chuàng)建修改密碼路由

//修改密碼

$api-post('password/update',[PasswordController::class,'updatePassword']);

1.3測(cè)試效果

二、綁定郵箱

2.1綁定郵箱控制器

運(yùn)行命令phpartisanmake:controllerAuth/BindController創(chuàng)建綁定郵箱的控制器:

寫入發(fā)送郵箱驗(yàn)證碼和更新郵箱的處理函數(shù):

namespaceApp\Http\Controllers\Auth;

useApp\Http\Controllers\BaseController;

useApp\Mail\SendEmailCode;

useIlluminate\Http\Request;

useIlluminate\Support\Facades\Mail;

classBindControllerextendsBaseController

*獲取郵件的驗(yàn)證碼

publicfunctionemailCode(Request$request){

$request-validate([

'email'='required|email'

//發(fā)送驗(yàn)證碼到郵件

Mail::to($request-input('email'))-queue(newSendEmailCode($request-input('email')));

return$this-response-noContent();

*更新郵箱

publicfunctionupdateEmail(Request$request){

$request-validate([

'email'='required|email',

'code'='required'

],[

'code.required'="驗(yàn)證碼不能為空",

//驗(yàn)證code是否正確

if(cache($request-input('email'))!=$request-input('code')){

return$this-response-errorBadRequest('驗(yàn)證碼或郵箱錯(cuò)誤!');

//更新郵箱

$user=auth('api')-user();

$user-email=$request-input('email');

$user-save();

return$this-response-noContent();

}

如果修改了隊(duì)列了,就要重啟隊(duì)列,命令sudosupervisorctlrestartall

2.2創(chuàng)建對(duì)應(yīng)路由

//發(fā)送郵件驗(yàn)證碼

$api-post('email/code',[BindController::class,'emailCode']);

//更新郵箱

$api-post('email/update',[BindController::class,'updateEmail']);

2.3創(chuàng)建發(fā)送郵件的類

運(yùn)行命令phpartisanmake:mailSendEmailCode:

寫入:

namespaceApp\Mail;

useIlluminate\Bus\Queueable;

useIlluminate\Mail\Mailable;

useIlluminate\Queue\SerializesModels;

useIlluminate\Support\Facades\Cache;

classSendEmailCodeextendsMailable

useQueueable,SerializesModels;

protected$email;

*Createanewmessageinstance.

*@returnvoid

publicfunction__construct($eamil)

$this-email=$eamil;

*Buildthemessage.

*@return$this

publicfunctionbuild()

//生成code

$code=rand(1000,9999);

//獲取郵箱

//使用緩存郵箱對(duì)應(yīng)的code

Cache::put($this-email,$code,now()-addMinute(5));//5分鐘過期

return$this-view('emails.send-email-code',['code'=$code]);

}

創(chuàng)建發(fā)送郵件的模版:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論