温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

laravel的用户怎么修改密码和绑定邮箱

发布时间:2021-09-08 07:19:36 来源:亿速云 阅读:160 作者:chen 栏目:开发技术

本篇内容主要讲解“laravel的用户怎么修改密码和绑定邮箱”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“laravel的用户怎么修改密码和绑定邮箱”吧!

目录
  • 一、修改密码

    • 1.1 创建修改密码控制器

    • 1.2 创建修改密码路由

    • 1.3 测试效果

  • 二、绑定邮箱

    •  2.1 绑定邮箱控制器

    • 2.2 创建对应路由

    • 2.3 创建发送邮件的类

    • 2.4 测试效果

一、修改密码

1.1 创建修改密码控制器

运行命令php artisan make:controller Auth/PasswordController

laravel的用户怎么修改密码和绑定邮箱

写入修改密码方法:

/**      * 修改密码      */     public function updatePassword(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个字符',             'old_password.max' => '旧密码最多16个字符',         ]);         // 旧密码         $old_password = $request->input('old_password');         // 用户实例         $user = auth('api')->user();         // 验证旧密码是否正确         if (!password_verify($old_password, $user->password)) {             return $this->response->errorBadRequest('旧密码不正确');         }          // 更新用户密码           $user->password = bcrypt($request->input('password'));         $user->save();         return $this->response->noContent();     }

laravel的用户怎么修改密码和绑定邮箱

1.2 创建修改密码路由

 // 修改密码             $api->post('password/update', [PasswordController::class, 'updatePassword']);

laravel的用户怎么修改密码和绑定邮箱

1.3 测试效果

laravel的用户怎么修改密码和绑定邮箱

二、绑定邮箱

 2.1 绑定邮箱控制器

运行命令php artisan make:controller Auth/BindController创建绑定邮箱的控制器:

laravel的用户怎么修改密码和绑定邮箱

写入发送邮箱验证码和更新邮箱的处理函数:

<?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\BaseController; use App\Mail\SendEmailCode; use Illuminate\Http\Request; use Illuminate\Support\Facades\Mail; class BindController extends BaseController {     /**      * 获取邮件的验证码      */     public function emailCode(Request $request) {         $request->validate([             'email' => 'required|email'         ]);         // 发送验证码到邮件         Mail::to($request->input('email'))->queue(new SendEmailCode($request->input('email')));         return $this->response->noContent();     }     /**      * 更新邮箱      */     public function updateEmail(Request $request) {         $request->validate([             'email' => 'required|email',             'code' => 'required'         ], [             'code.required' => "验证码不能为空",         ]);         // 验证code是否正确         if (cache($request->input('email')) != $request->input('code')) {             return $this->response->errorBadRequest('验证码或邮箱错误!');         }         // 更新邮箱         $user = auth('api')->user();          $user->email = $request->input('email');         $user->save();         return $this->response->noContent();     }  }

如果修改了队列了,就要重启队列,命令sudo supervisorctl restart all

2.2 创建对应路由

  // 发送邮件验证码             $api->post('email/code', [BindController::class, 'emailCode']);             // 更新邮箱             $api->post('email/update', [BindController::class, 'updateEmail']);

laravel的用户怎么修改密码和绑定邮箱

2.3 创建发送邮件的类

运行命令php artisan make:mail SendEmailCode:

laravel的用户怎么修改密码和绑定邮箱

写入:

<?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; use Illuminate\Support\Facades\Cache; class SendEmailCode extends Mailable {     use Queueable, SerializesModels;     protected $email;     /**      * Create a new message instance.      *      * @return void      */     public function __construct($eamil)     {         $this->email = $eamil;     }     /**      * Build the message.      *      * @return $this      */     public function build()     {         // 生成code         $code = rand(1000, 9999);         // 获取邮箱         // 使用缓存邮箱对应的code         Cache::put($this->email, $code, now()->addMinute(5)); // 5分钟过期         return $this->view('emails.send-email-code', ['code' => $code]);     } }

laravel的用户怎么修改密码和绑定邮箱

创建发送邮件的模版:

laravel的用户怎么修改密码和绑定邮箱

模版写入:

<h4>邮箱验证码是:{{$code}}</h4>
<h4>验证码5分钟内有效,请及时使用!</h4>

2.4 测试效果

laravel的用户怎么修改密码和绑定邮箱

可以看到这边收到邮箱验证码。
测试更新的输入邮箱不正确或者验证码不正确:

laravel的用户怎么修改密码和绑定邮箱

输入正确的邮箱和验证码就会修改了。

到此,相信大家对“laravel的用户怎么修改密码和绑定邮箱”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI