[英]I made a login system but it is saying wrong login details and unable to login
我想创建一个简单的登录系统,我做了一个登录系统,但它说的是错误的登录细节。 我尝试做转储测试返回null。 请在评论中查看 dd 测试。 由于这个原因也无法注销
我的登录控制器是:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Models\User;
use Validator;
class LoginController extends Controller
{
public function index()
{
return view('login');
}
public function store(Request $request)
{
$this->validate($request, [
'email' => 'required|email',
'password' => 'required|alphaNum|min:3'
]);
$user_data = array(
'email' => $request->get('email'),
'password' => $request->get('password')
);
//$user = Auth::user();
//dd($user); I have done dump test but it is returning null
if(Auth::attempt($user_data))
{
return redirect()->route('welcome');
}
else
{
return back()->with('error','wrong Login Details');
}
}
}
我的登录刀片是
@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 action="{{route('login.save')}}" style="border:1px solid #ccc" method="post">
{{ csrf_field() }}
<div class="container">
<h1>Login</h1>
<p>Please fill in this form to Login</p>
<hr>
<label for="email"><b>Email</b></label>
<input type="text" placeholder="Enter Email" name="email" value="{{old('name')}}" >
@error('email')
{{$message}}
@enderror
<label for="psw"><b>Password</b></label>
<input type="password" placeholder="Enter Password" name="password" >
@error('password')
{{$message}}
@enderror
<label for="psw-repeat"><b>Repeat Password</b></label>
<input type="password" placeholder="Repeat Password" name="psw-repeat" >
<div class="clearfix">
<button type="submit" class="signupbtn">Log in</button>
</div>
</div>
</form>
</body>
</html>
网络路线是
Route::get('/register','App\Http\Controllers\RegisterController@index')->name('register');
Route::post('/register/save','App\Http\Controllers\RegisterController@store')->name('register.save');
Route::get('/login','App\Http\Controllers\LoginController@index')->name('login');
Route::post('/login/save','App\Http\Controllers\LoginController@store')->name('login.save');
Route::get('/welcome','App\Http\Controllers\LogoutController@store')->name('logout');
尝试调试您的代码
1-注册后查看数据库。 你的密码是加密的吗?
2- 提交表单 dd($request->all()) 如果一切正常
3- Auth::attempt($request->only('email', 'password'))
我希望这个答案可以帮助您调试代码。
尝试在控制器本身上运行 dd 。 利用
dd($request->all());
前
$this->validate($request, [
'email' => 'required|email',
'password' => 'required|alphaNum|min:3'
]);
截至目前,没有迹象表明您的输入数据甚至到达了控制器。 您的路线甚至可能不正确,如果不知道您的项目结构或文件名,就不可能说出来。 如果 dd 没有返回这两个输入,则您知道路由不正确或中间件正在拦截数据。 测试完成后,在评论中使用更多信息更新此答案。 另外我不确定您为什么要尝试 dd Auth:user。 当然它不会返回任何东西。 您还没有登录。 没有用户可以显示。 除非你做过类似的事情:
$users = Users::firstOrCreate($data);
Auth::loginUsingId($users->id);
$users->save();
您实际上并没有在数据库中保存任何用户或登录。我认为您需要找到更好的教程来执行此操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.