Php Laravel 5 Auth::TRUMENT始终返回false,即使我键入了正确的数据?(拉雷维尔)
我在LARAVEL应用程序上创建了自定义登录系统,直到昨天,一切都运行得很好。当我输入和数据库中相同的用户登录表单电子邮件和密码时,系统将我重定向回。我不知道是什么问题,我清除了缓存和所有东西,但仍然不起作用。如果有人知道答案,我会非常感激 登录页面图像: 存储在带有种子的数据库中的用户数据: ` 从登录表单发送数据的dd函数: ` 主控制器Php Laravel 5 Auth::TRUMENT始终返回false,即使我键入了正确的数据?(拉雷维尔),php,laravel,login,Php,Laravel,Login,我在LARAVEL应用程序上创建了自定义登录系统,直到昨天,一切都运行得很好。当我输入和数据库中相同的用户登录表单电子邮件和密码时,系统将我重定向回。我不知道是什么问题,我清除了缓存和所有东西,但仍然不起作用。如果有人知道答案,我会非常感激 登录页面图像: 存储在带有种子的数据库中的用户数据: ` 从登录表单发送数据的dd函数: ` 主控制器 function checklogin(Request $request) { $this->validate($requ
function checklogin(Request $request)
{
$this->validate($request, [
'email' => 'required|email',
'password' => 'required|alphaNum|min:3'
]);
$user_data = array(
'email' => $request->get('email'),
'password' => $request->get('password')
);
if(Auth::attempt($user_data))
{
return redirect('');
}
else
{
return back()->with('error', 'you typed wrong data');
}
}
登录页面
@extends('layout')
@section('content')
<div class="container2">
<div class="container">
<div class="card card-container">
<h1 style="text-align: center;">Admin login</h1>
@if(isset(Auth::user()->email))
<script>window.location="/main/successlogin";</script>
@endif
@if ($message = Session::get('error'))
<div class="alert alert-danger alert-block">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>{{ $message }}</strong>
</div>
@endif
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form method="post" action="{{ url('/main/checklogin') }}">
{{ csrf_field() }}
<div class="form-group">
<label>Unesi email</label>
<input type="email" name="email" class="form-control" />
</div>
<div class="form-group">
<label>Unesi šifru</label>
<input type="password" name="password" class="form-control" />
</div>
<div class="form-group">
<input type="submit" name="login" class="btn btn-primary" value="Login" />
</div>
</form>
</div><!-- /card-container -->
</div><!-- /container -->
</div><!-- /container -->
@endsection
用户模型
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password', 'lastname', 'level',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
试试这个:
function checklogin(Request $request)
{
$this->validate($request, [
'email' => 'required|email',
'password' => 'required|alphaNum|min:3'
]);
$user_data = array(
'email' => $request->get('email'),
'password' => bcrypt($request->get('password'))
);
if(Auth::attempt($user_data))
{
return redirect('');
}
else
{
return back()->with('error', 'you typed wrong data');
}
}
你能出示你的数据库吗?这些密码不一样,是吗?大多数哈希值都应该区分大小写。数据库中的密码和我键入的登录表单中的密码是相同的,因为密码字段区分大小写。您在密码字段的开头有D,因此您必须发送D,而不是用户试图验证的小数据。这里不需要bcrypt
。
function checklogin(Request $request)
{
$this->validate($request, [
'email' => 'required|email',
'password' => 'required|alphaNum|min:3'
]);
$user_data = array(
'email' => $request->get('email'),
'password' => bcrypt($request->get('password'))
);
if(Auth::attempt($user_data))
{
return redirect('');
}
else
{
return back()->with('error', 'you typed wrong data');
}
}