2015-09-14 179 views

回答

1

您需要添加用户通过单击发送给他们的电子邮件中的链接验证其电子邮件地址的功能。

这通常看起来是这样的:

添加迁移

class AddVerificationColumnsToUsersTable extends Migration { 

    public function up() 
    { 
     Schema::table('users', function(Blueprint $table) 
     { 
      $table->boolean('confirmed')->default(0); 
      $table->string('confirmation_code')->nullable(); 
     }); 
    } 

    public function down() 
    { 
     Schema::table('users', function(Blueprint $table) 
     { 
      $table->dropColumn('confirmed'); 
      $table->dropColumn('confirmation_code'); 
     }); 
    } 
} 

内,您的注册逻辑,你将需要设置验证码:

这是一个例子,将必须根据您的注册实施进行修改:

public function store() 
{ 
    // Logic that gets input and creates $user goes here 
    $user->confirmation_code = str_random(30); 
    $user->save(); 

    Mail::send('emails.verification', ['user' => $user], function($message) use ($user) 
    { 
     $message->from('[email protected]', 'Yoursite'); 
     $message->to($user->email); 
    }); 
} 

您将需要创建一个电子邮件模板:

// resources/views/emails/verification.blade.php 

Hi {{ $user->name }}, 

Please click the following link to verify your account: 
<a href="{{ route('users.verify') }}">{{ route('users.verify') }}</a> 

最后,你需要验证路线:

// routes.php 

Route::get('users/verify/{confirmation_code}', [ 
    'as' => 'users.verify', 
    'uses' => function ($confirmation_code) { 
     $user = User::where('confirmation_code', $confirmation_code)->first(); 
     $user->confirmed = true; 
     $user->save(); 
    } 
] 
0

这只是可能与确认电子邮件发送到已知的电子邮件地址。 你什么时候需要检查 - 注册,通讯或什么? 如果您想使用确认,那么您需要在数据库中添加一个新列,该列包含分配的随机标记和一个视图/控制器/路径以检查此标记(确认/ 1234567890),然后使用此标记搜索用户并设置一个标识该用户被确认。