hampel / validate-laravel-auth
自定义 Laravel 4 Auth 验证服务提供者 Composer 包
Requires
- php: >=5.3.0
- illuminate/auth: ~4.0
- illuminate/container: ~4.0
- illuminate/support: ~4.0
- illuminate/translation: ~4.0
- illuminate/validation: >=4.0.9,~4.0
Requires (Dev)
- mockery/mockery: dev-master@dev
Conflicts
- hampel/validate-laravel: <=1.0.1
README
为 Laravel 4 定制的 Auth 验证器
由 Simon Hampel 提供。
备注
我决定不更新此包以使其与 Laravel 5 兼容 - 此功能由内置的 Auth 控制器提供,避免了在验证规则中尝试认证用户的复杂性。
有关更多信息,请参阅 Laravel 5 特性 AuthenticatesAndRegistersUsers
:::php
/**
* Handle a login request to the application.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function postLogin(Request $request)
{
$this->validate($request, [
'email' => 'required', 'password' => 'required',
]);
$credentials = $request->only('email', 'password');
if ($this->auth->attempt($credentials, $request->has('remember')))
{
return redirect()->intended($this->redirectPath());
}
return redirect($this->loginPath())
->withInput($request->only('email', 'remember'))
->withErrors([
'email' => 'These credentials do not match our records.',
]);
}
这实际上实现了相同的结果,而我们无需编写任何代码!
然而,我也认识到验证库有其他用途,所以如果存在我在考虑之外将认证功能包含在验证库中的用例,请告知我,我会重新考虑发布此包的 L5 版本。
安装
安装 Hampel Laravel Auth 验证器的推荐方式是通过 Composer
在您的 composer.json
中通过 Composer 需求此包
:::json
{
"require": {
"hampel/validate-laravel-auth": "1.3.*"
}
}
运行 Composer 以更新新需求。
:::bash
$ composer update
此包是为与 Laravel 4 框架一起工作而构建的。
打开您的 Laravel 配置文件 config/app.php
并在 $providers
数组中添加服务提供者
:::php
"providers" => array(
...
"Hampel\Validate\LaravelAuth\ValidateServiceProvider"
),
用法
此包为 Laravel 4 添加了额外的验证器 - 有关一般用法说明,请参阅 Laravel 文档 - 验证
auth:credential_column1,credential_value1,credential_column2,credential_value2,...__
验证字段必须是密码,它将与提供的凭据列名称和值组合,然后传递给 Auth::validate 以检查它们是否是有效的密码/凭据组合。
auth 规则至少需要两个参数(如果提供少于两个参数,则规则将始终失败)。
- __credential_column1__: 第一个凭据列字段的名称,例如:'username'(WordPress 中的 'user_login'),或 'email'(WordPress 中的 'user_email')。
- __credential_value1__: 要在第一个凭据列中定位的第一个凭据的值
- __credential_column2__: 第二个凭据列的名称
- __credential_value2__: 第二个凭据的值
- ...
通过这种方式,可以指定多个凭据来验证用户(例如,使用用户名和电子邮件定位用户)。
示例
:::php
$username_field = "user_login";
$username = Input::get('username');
$password = Input::get('password');
$user_table = Config::get('auth.table');
$userdata = array(
'username' => $username,
'password' => $password
);
// Declare the rules for the form validation.
$rules = array(
'username' => array('required', "exists:{$user_table},{$username_field}"),
'password' => array('required', "auth:{$username_field},{$username}")
);
// Validate the inputs.
$validator = Validator::make($userdata, $rules);
// Check if the form validates with success.
if ($validator->passes())
{
dd("passes");
}
else
{
dd("fails");
}