使用 Laravel 3 通过电子邮件激活帐户

Posted

技术标签:

【中文标题】使用 Laravel 3 通过电子邮件激活帐户【英文标题】:Activating account via email with Laravel 3 【发布时间】:2013-07-24 15:33:27 【问题描述】:

我正在尝试使用新用户电子邮件和哈希通过电子邮件验证用户帐户。我的路由有问题,因为我在单击链接时收到 404 错误。

我发送给用户的 URL 如下所示:

http://mywebsite.com/users/verify/<email>/<hash>

我的整个用户控制器都已注册...

Route::controller('users');

我的用户控制器中的函数如下...只是试图让我的函数触发,但我收到 404 错误。

// VERIFY NEW USER
public function post_verify($email, $hash) 
   echo "$email Acct verified with $hash!";

这看起来很简单。我的控制器很安静。为什么路由不正确?

谢谢!

【问题讨论】:

我也试过...Route::post('users/verify/(:any)/(:any)', array('as'=&gt;'verify_acct', 'uses'=&gt;'users@verify'));作为路由,但还是不行。 已解决 URL 中的电子邮件地址(或更具体地说是“@”符号)正在终止路由,导致 404 错误。如果有人知道为什么随时发表评论。只需将电子邮件更改为用户名即可成功。 【参考方案1】:

您只需要在控制器中将 post 方法替换为 get 方法即可: get_verify($email, $hash) 而不是 post_verify($email, $hash)

// VERIFY NEW USER
public function get_verify($email, $hash) 
   echo "$email Acct verified with $hash!";

【讨论】:

【参考方案2】:

您正在发送一个 URL 给用户,所以当他们打开它时,他们实际上发送了一个 GET请求! 在您的 Controller 中,您正在等待 POST 请求 :) 所以它永远不会发生!因为没有用户填写和发布的表格! 正如 Aleksey 所说,将其更改如下:

// VERIFY NEW USER
public function get_verify($email, $hash) 
   echo "$email Acct verified with $hash!";

【讨论】:

以上是关于使用 Laravel 3 通过电子邮件激活帐户的主要内容,如果未能解决你的问题,请参考以下文章

用户帐户激活、电子邮件确认和使用 Passport / Node.Js 的邀请

OctoberCMS:如何在 Rainlab.User 插件中通过电子邮件设置用户帐户激活?

在 Drupal 中,如何在没有管理员批准和用户设置密码的情况下激活电子邮件帐户?

如何使用 cPanel 电子邮件帐户在 laravel 中发送确认电子邮件?

账户激活,CodeIgniter

Prestashop:从 BackOffice 激活帐户后无法向用户发送电子邮件