banner

laravel中发送邮箱验证码和更新邮箱

在laravel框架中有很多的功能特性需要跟进和熟悉。发送邮箱验证码和更新邮箱就是其中之一。我们往往会忽视这方面的细节,比如如何配置好邮箱发送的各种参数。当然还是有很多可以优化的地方,比如增加队列。

一般来说,我们来看看laravel发送邮箱验证码和更新邮箱的路由配置,示例代码如下:


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

绑定控制器的获取邮箱验证码和更新邮箱,示例代码如下:


/**
     * 获取邮件的验证码
     */
    public function emailCode(Request $request)
    {
        $request->validate([
            'email' => 'required|email|unique:users'
        ]);
        //发送验证码到邮件
        Mail::to($request->input('email'))->queue(new SendCode($request->input('email')));
        return $this->response->noContent();
    }
    /**
     * 更新邮件
     */
    public function updateEmail(Request $request)
    {
        $request->validate([
            'email' => 'unique:users'
        ]);
        //更新邮箱
        $user = auth('api')->user();
        $user->email = $request->input('email');
        $user->save();
        return $this->response->noContent();
    }

Mail目录下的发送验证码类SendCode,示例代码如下


class SendCode extends Mailable
{
    use Queueable, SerializesModels;
    protected $email;
    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($email)
    {
        $this->email = $email;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        //生成code
        $code = rand(1000,9999);
        //缓存邮箱对应的code
        Cache::put('email_code_'.$this->email,$code,now()->addMinute(15));
        return $this->view('emails.send-code',[
            'code' => $code
        ]);
    }
}

邮箱模版如下:


您的邮箱验证码是{{$code}}
验证码15钟内有效,请及时使用。
wordpress

WordPress中的后台增加子菜单到现有系统菜单里

wordpress中有许多的函数我们需要熟稔于心。需要说明的是该方式语法与add_menu_page语法完全相同,不再赘述。但仅可以增加子菜单到对应系统内置的菜单,无法为自定义菜单增加子菜单。

0
Would love your thoughts, please comment.x
()
x
Scroll to Top