Laravel 4:如何制作确认电子邮件



到目前为止,我已经制作了一个带有登录/注册功能的应用程序,它运行良好。注册后,会发送一封欢迎电子邮件。

但我想做的是在邮件中发送一个链接,只有点击后才能登录。

像论坛等常见的注册电子邮件。

有人能帮我吗?

这是postRegister方法:

public function postRegister()
{
    $input = Input::all();
    $rules = array(
        'username' => 'required',
        'password' => 'required');
    $validation = Validator::make($input, $rules);
    if ($validation->passes()) {
        $password = $input['password'];
        $password = Hash::make($password);
        $user = new User;
        $user->username = $input['username'];
        $user->email = $input['email'];
        $user->password = $password;
            $mailer = new MailersUserMailer($user);
                 // var_dump($mailer);
                    $mailer->welcomeMail()->deliver();
                    $user->save();
        return Redirect::to('afterRegister');
    }
    return Redirect::back()->withInput()->withErrors($validation)->with('message', 'Validation Errors!');
} 

感谢

这里有一些线索(不会为您编写代码)。

  • 在用户表中添加两个字段:confirmationconfirmed
  • 在Laravel中创建一个类似registration/verify/{confirmation}的路由,在该路由中,您尝试在DB中查找具有给定确认码的用户(如果找到,请将用户的confirmed字段设置为1)
  • 在用户注册后,生成一个唯一的确认代码(您可以使用str_random()助手函数)
  • 相应地设置新用户的DB条目(confirmation=随机码,confirmed=0)
  • 在给新用户的电子邮件中包含一个验证链接(根据您的验证路线构建)和生成的确认码

Auth尝试现在可以这样做:

$user = array(
        'username' => Input::get('username'),
        'password' => Input::get('password'),
        'confirmed' => 1
);
if (Auth::attempt($user)) {
    // success!
    return Redirect::route('restricted/area');
}

相关内容

  • 没有找到相关文章

最新更新