php - Laravel 5.7 Login Error: These credentials don't match our records
问题描述
I'm very new to Laravel 5.7. I'm working on an assignment that requires a user to login in order to do CRUD functions. My CRUD is working fine, but I am having a problem with the login system.
I'm using the default login from laravel (auth), and I can register and it logs me in. However, my problem is when I log out, I am unable to login again. The email field becomes red and it tells me
" These credentials do not match our records."
But it is exactly as it is in the database. I am using the default login and have not changed anything except for adding a logout function in the LoginController.
I have tried searching google and here but have not found any answers. Does anyone know why this is happening and how to fix it?
Edit: These are my codes:
routes
Auth::routes();
Route::get('/home', 'HomeController@index')->name('aboutinfo');
Route::get('/logout', 'YourController@logout');
LoginController.php
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Support\Facades\Hash;
use Auth;
use Redirect;
use Session;
use Validator;
use Illuminate\Support\Facades\Input;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected function authenticated() {
if (Auth::check()) {
return redirect()->route('aboutinfo');
}
}
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
public function logout(Request $request) {
$this->guard()->logout();
$request->session()->invalidate();
return redirect('/');
}
}
login.blade.php
@extends('allayout')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">{{ __('Login') }}</div>
<div class="card-body">
<form method="POST" action="{{ route('login') }}">
@csrf
<div class="form-group row">
<label for="email" class="col-sm-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
<div class="col-md-6">
<input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" required autofocus>
@if ($errors->has('email'))
<span class="invalid-feedback" role="alert">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group row">
<label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>
<div class="col-md-6">
<input id="password" type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" required>
@if ($errors->has('password'))
<span class="invalid-feedback" role="alert">
<strong>{{ $errors->first('password') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group row">
<div class="col-md-6 offset-md-4">
<div class="form-check">
<input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>
<label class="form-check-label" for="remember">
{{ __('Remember Me') }}
</label>
</div>
</div>
</div>
<div class="form-group row mb-0">
<div class="col-md-8 offset-md-4">
<button type="submit" class="btn btn-primary">
{{ __('Login') }}
</button>
<a class="btn btn-link" href="{{ route('password.request') }}">
{{ __('Forgot Your Password?') }}
</a>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
HomeController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
{
return view('aboutinfo');
}
}
User.php
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
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',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
public $timestamps = false;
/**
* @return mixed|string
*/
public function getAuthPassword()
{
return $this->user_password;
}
/**
* @return string
*/
public function getKey()
{
return $this->user_id;
}
protected $primaryKey = 'id';
}
Is there anything that I've done wrong?
解决方案
因此,在研究了几个小时后,我发现它不起作用'user_id'
,因为在我的数据库中它是id
. 这解决了我的问题!
推荐阅读
- amazon-web-services - 如何将 AWS Cognito 用户池中的 IP 地址列入白名单
- python - 没有路线匹配给定的查询
- vscode-settings - VS Code 格式化程序对 HTML 的工作很奇怪
- machine-learning - 如何从 Open Images Dataset V6 中获取注释数据?
- javascript - 向 typescript .d.ts 文件添加描述
- react-native - 笔记本下一页打开动画
- android - 设备:摩托罗拉 Moto Z2 Play 未出现在 Firebase Crashlytics 中
- javascript - JWT 授权标头返回未定义
- safari - safari 14.1.2 - 无法使用 printjs 打印 pdf
- mysql - 我可以使用 data.sql 的 spring 配置文件来根据环境加载不同的数据吗?