请选择 进入手机版 | 继续访问电脑版

[PHP编程] laravel的用户修改暗码 与绑定邮箱的详细 操作

  [复制链接]
查看371 | 回复84 | 2021-9-14 03:25:57 | 显示全部楼层 |阅读模式
目次

一、修改暗码

1.1 创建修改暗码 控制器

运行下令

  1. php artisan make:controller Auth/PasswordController
复制代码

在这里插入图片形貌

写入修改暗码 方法:

  1. /**
  2. * 修改密码
  3. */
  4. public function updatePassword(Request $request) {
  5. $request->validate([
  6. 'old_password' => 'required|min:6|max:16',
  7. 'password' => 'required|min:6|max:16|confirmed',
  8. ], [
  9. 'old_password.required' => '旧密码不能为空',
  10. 'old_password.min' => '旧密码最少6个字符',
  11. 'old_password.max' => '旧密码最多16个字符',
  12. ]);
  13. // 旧密码
  14. $old_password = $request->input('old_password');
  15. // 用户实例
  16. $user = auth('api')->user();
  17. // 验证旧密码是否正确
  18. if (!password_verify($old_password, $user->password)) {
  19. return $this->response->errorBadRequest('旧密码不正确');
  20. }
  21. // 更新用户密码
  22. $user->password = bcrypt($request->input('password'));
  23. $user->save();
  24. return $this->response->noContent();
  25. }
复制代码

在这里插入图片形貌

1.2 创建修改暗码 路由

  1. // 修改密码
  2. $api->post('password/update', [PasswordController::class, 'updatePassword']);
复制代码

在这里插入图片形貌

1.3 测试效果

在这里插入图片形貌

二、绑定邮箱

 2.1 绑定邮箱控制器

运行下令

  1. php artisan make:controller Auth/BindController
复制代码
创建绑定邮箱的控制器:

在这里插入图片形貌

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

  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. use App\Http\Controllers\BaseController;
  4. use App\Mail\SendEmailCode;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\Mail;
  7. class BindController extends BaseController
  8. {
  9. /**
  10. * 获取邮件的验证码
  11. */
  12. public function emailCode(Request $request) {
  13. $request->validate([
  14. 'email' => 'required|email'
  15. ]);
  16. // 发送验证码到邮件
  17. Mail::to($request->input('email'))->queue(new SendEmailCode($request->input('email')));
  18. return $this->response->noContent();
  19. }
  20. /**
  21. * 更新邮箱
  22. */
  23. public function updateEmail(Request $request) {
  24. $request->validate([
  25. 'email' => 'required|email',
  26. 'code' => 'required'
  27. ], [
  28. 'code.required' => "验证码不能为空",
  29. ]);
  30. // 验证code是否正确
  31. if (cache($request->input('email')) != $request->input('code')) {
  32. return $this->response->errorBadRequest('验证码或邮箱错误!');
  33. }
  34. // 更新邮箱
  35. $user = auth('api')->user();
  36. $user->email = $request->input('email');
  37. $user->save();
  38. return $this->response->noContent();
  39. }
  40. }
复制代码

假如 修改了队列了,就要重启队列,下令

  1. sudo supervisorctl restart all
复制代码

2.2 创建对应路由

  1. // 发送邮件验证码
  2. $api->post('email/code', [BindController::class, 'emailCode']);
  3. // 更新邮箱
  4. $api->post('email/update', [BindController::class, 'updateEmail']);
复制代码

在这里插入图片形貌

2.3 创建发送邮件的类

运行下令

  1. php artisan make:mail SendEmailCode
复制代码
:

在这里插入图片形貌

写入:

  1. <?php
  2. namespace App\Mail;
  3. use Illuminate\Bus\Queueable;
  4. use Illuminate\Mail\Mailable;
  5. use Illuminate\Queue\SerializesModels;
  6. use Illuminate\Support\Facades\Cache;
  7. class SendEmailCode extends Mailable
  8. {
  9. use Queueable, SerializesModels;
  10. protected $email;
  11. /**
  12. * Create a new message instance.
  13. *
  14. * @return void
  15. */
  16. public function __construct($eamil)
  17. {
  18. $this->email = $eamil;
  19. }
  20. /**
  21. * Build the message.
  22. *
  23. * @return $this
  24. */
  25. public function build()
  26. {
  27. // 生成code
  28. $code = rand(1000, 9999);
  29. // 获取邮箱
  30. // 使用缓存邮箱对应的code
  31. Cache::put($this->email, $code, now()->addMinute(5)); // 5分钟过期
  32. return $this->view('emails.send-email-code', ['code' => $code]);
  33. }
  34. }
复制代码

在这里插入图片形貌

创建发送邮件的模版:

在这里插入图片形貌

模版写入:

  1. <h3>邮箱验证码是:{{$code}}</h3>
  2. <h3>验证码5分钟内有效,请及时使用!</h3>
复制代码

2.4 测试效果

在这里插入图片形貌

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

在这里插入图片形貌

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

到此这篇关于laravel的用户修改暗码 与绑定邮箱的文章就先容 到这了,更多干系 laravel修改暗码 内容请搜索 脚本之家从前 的文章或继续欣赏 下面的干系 文章盼望 大家以后多多支持脚本之家!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

avatar caymkda949764 | 2021-9-20 05:20:27 | 显示全部楼层
admin楼主很有艺术范!
回复

使用道具 举报

avatar 123457242 | 2021-9-24 15:04:06 | 显示全部楼层
写得实在太好了,我唯一能做的就是默默顶贴!
回复

使用道具 举报

avatar 教风三应博 | 2021-9-24 17:28:01 | 显示全部楼层
收藏了,怕admin楼主删了!
回复

使用道具 举报

avatar 纆g | 2021-9-28 11:35:09 | 显示全部楼层
青春不在了,青春痘还在!
回复

使用道具 举报

avatar 123456879 | 2021-9-29 04:18:15 | 显示全部楼层
谢谢admin楼主的分享!
回复

使用道具 举报

avatar 老庞208 | 2021-9-29 19:39:38 | 显示全部楼层
今天是个特别的日子,值得纪念!
回复

使用道具 举报

avatar 酱油的2017 | 2021-10-2 17:04:21 | 显示全部楼层
这么经典的话只有admin楼主能想到!
回复

使用道具 举报

avatar 创新2017 | 2021-10-2 20:36:49 | 显示全部楼层
论坛的帖子越来越有深度了!
回复

使用道具 举报

avatar 123456868 | 2021-10-3 05:34:34 | 显示全部楼层
吹牛的人越来越多了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则