laravel发送邮件找回密码,收到默认的url是:
http://your domain name/password/reset/token
使用自带的发送邮件找回密码,那么用户只能收到上面那串固定的url。可是如果对接需求更改,使用其他的页面地址去找回密码,比如:
http://your domain name/#/reset_password_by_email?token=asdasdasdasda
这种情况比较常见,特别是前后端分离的情况。所以我们该如何去修改邮件内默认的url呢?替代方案有多种,这里介绍相对优秀,而且符合laravel框架认证机制的方案。实际上本文是参考外国朋友的相关文章,我这里对这个方案进行了实践和整理(看懂上面那篇文章而且能完整实践的话,请自行跳过)。
让我们找找laravel默认的发送邮件找回密码的方法:
进入SendsPasswordResetEmails文件:
到这里很清楚知道,实际上调用的就是这个sendResetLinkEmail这个方法。 因为是在/vendor里的文件,所以不能直接在上面修改,而是需要在这里重写sendResetLinkEmail方法:
新建一个Notification类,运行artisan命令:
生成下面这个文件:
需求的url修改好了,那么如何使用这个notification呢? 请继续看:
至此,整个过程实践过程就结束了,收到的邮件url是自己填写的那一串啦。 修改发送邮件模板很简单,具体请自行查看laravel文档。
网友评论