php - 为什么 Laravel Auth::attempt 方法不起作用?
问题描述
我想做用户身份验证,方法 Auth::attempt() 不起作用,但数据正确(laravel 5.2)
public function postLogin(Request $request)
{
$this->validate($request, [
'name' => 'required|max:255',
'password' => 'required'
]);
$username = $request->input('name');
$password = $request->input('password');
if (Auth::attempt(['name' => $username, 'password' => $password])) {
return redirect('home.get');
} else {
return "FALSE";
}
解决方案
如果您使用的是 php artisan make:auth。有一个“使用 AuthenticatesUsers;” 默认代码将登录并使用电子邮件和密码进行检查。因此,您需要复制放入 LoginController 的凭证函数(覆盖默认代码)。下面的代码显示了如何使用电子邮件或带密码的名称登录。
protected function credentials(Request $request)
{
$field = filter_var($request->get($this->name()), FILTER_VALIDATE_EMAIL)
? $this->name()
: 'name';
return [
$field => $request->get($this->name()),
'password' => $request->password,
];
}
推荐阅读
- hadoop - 仅从 masrer 节点 windows 10 运行 Hadoop 集群
- java - 将显示一个菜单以供选择执行的 java 程序
- python - PIL 和 matplotlob 以不同方式显示相同的数组
- scala - 检查 delta 表是否存在于路径上或不在数据块中
- python - 连接列表中的项目?
- php - 如何检查 Phalcon id 是否有效以执行 fetchAllAssoc()?
- javascript - Javascript:推入一个空的 3d 数组
- sql - SQL:postgreSQL 中 json_pretty() 的等价物是什么
- javascript - AngularJS $http请求不适用于长时间请求
- javascript - 尝试通过 JS 向用户发送自定义输入的电子邮件