【问题标题】:How to modify Laravel 5 default authentication system如何修改 Laravel 5 默认认证系统
【发布时间】:2015-05-20 01:22:39
【问题描述】:

我使用的是默认的 Laravel 5 身份验证系统。我想简单地添加一个检查来验证用户正在使用学校电子邮件帐户(我正在为我的大学写这个)。例如,我想确保他们使用的是 @harvard.edu,而不是 @gmail.com。如果他们没有使用正确的电子邮件类型,我想在$errors 变量中添加一个错误,并将其与注册表单上的其他可能错误一起打印出来。

看来实际验证发生在 Registrar.php 中。我假设我必须在验证器功能的电子邮件部分添加一些内容。

public function validator(array $data)
{
    return Validator::make($data, [
        'name' => 'required|max:255',
        'email' => 'required|email|max:255|unique:users',
        'password' => 'required|confirmed|min:6',
    ]);
}

我感到困惑的另一部分是实际错误消息的位置。

我是 Laravel 的新手,在此先感谢。

【问题讨论】:

  • 你使用的是 Laravel 4 还是 5?

标签: php authentication laravel laravel-5


【解决方案1】:

要添加自定义验证,您可以阅读http://laravel.com/docs/5.0/validation#custom-validation-rules 的文档。例如,在您的情况下:

Validator::extend('email_harvard', function($attribute, $value, $parameters)
{
    $segments = explode("@", $value, 2);
    return end($segments) == "harvard.com";
});

之后,修改你的validator规则,改行:

'email' => 'required|email|max:255|unique:users',

成为:

'email' => 'required|email|email_harvard|max:255|unique:users',

关于错误信息,您可以在此处阅读。在 Laravel 5 中,验证消息位于resources/lang/xx/validation.php,其中xx 是语言代码。

【讨论】:

  • 我会在验证器函数中添加 Validator::extend 吗? @HieuLe
  • 你应该把这段代码放在 Laravel 5 的服务提供者中,见this post
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-29
  • 1970-01-01
  • 1970-01-01
  • 2015-05-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多