一、修改密码
1.1 创建修改密码控制器
运行命令php artisan make:controller auth/passwordcontroller
写入修改密码方法:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
/**
* 修改密码
*/
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();
}
|
1.2 创建修改密码路由
?
1
2
|
// 修改密码
$api ->post( 'password/update' , [passwordcontroller:: class , 'updatepassword' ]);
|
1.3 测试效果
二、绑定邮箱
2.1 绑定邮箱控制器
运行命令php artisan make:controller auth/bindcontroller
创建绑定邮箱的控制器:
写入发送邮箱验证码和更新邮箱的处理函数:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
<?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 创建对应路由
?
1
2
3
4
5
|
// 发送邮件验证码
$api ->post( 'email/code' , [bindcontroller:: class , 'emailcode' ]);
// 更新邮箱
$api ->post( 'email/update' , [bindcontroller:: class , 'updateemail' ]);
|
2.3 创建发送邮件的类
运行命令php artisan make:mail sendemailcode
:
写入:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
<?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 ]);
}
}
|
创建发送邮件的模版:
模版写入:
<h3>邮箱验证码是:{{$code}}</h3>
<h3>验证码5分钟内有效,请及时使用!</h3>
2.4 测试效果
可以看到这边收到邮箱验证码。
测试更新的输入邮箱不正确或者验证码不正确:
输入正确的邮箱和验证码就会修改了。
到此这篇关于laravel的用户修改密码与绑定邮箱的文章就介绍到这了,更多相关laravel修改密码内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!
原文链接:https://blog.csdn.net/weixin_44103733/article/details/120121853
相关文章
猜你喜欢
- ASP.NET自助建站系统中如何实现多语言支持? 2025-06-10
- 64M VPS建站:如何选择最适合的网站建设平台? 2025-06-10
- ASP.NET本地开发时常见的配置错误及解决方法? 2025-06-10
- ASP.NET自助建站系统的数据库备份与恢复操作指南 2025-06-10
- 个人网站服务器域名解析设置指南:从购买到绑定全流程 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-05-25 20
-
2025-05-29 39
-
2025-05-27 20
-
WordPress忘记密码怎么办 WordPress登录密码重置的简单方法
2025-05-25 99 -
2025-05-25 56
热门评论