419 對不起,您的會議已過期.请刷新并重试.自定义登录不起作用



我创建了一个登录页面,但我无法通过它,因为它说对不起,您的会话已过期。请刷新并重试。 这是我的控制器...

<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use DB;
use AppHttpRequests;
use AppHttpControllersController;
class loginController extends Controller
{
/**
* Display a listing of the resource.
*
* @return IlluminateHttpResponse
*/
public function index()
{
$request = Request::all();
$registers = registers::where('employeeID', $request['employeeID'])
->first();
$validCredentials = Hash::check($request['password'], $request- 
>get('password'));
if ($validCredentials) {
Session::flash('login','login Successful!');
return view('dashboard');
}
}

这是我的路线...

Route::get('/', function () {
return view('register');
});

Route::resource('register', 'registerController');
Route::get('login',function(){
return view('login');
});
Route::resource('login', 'loginController');
Route::resource('login', 'loginController@index');
Route::get('dashboard',function(){
return view('dashboard');
});

我没有模型,因为我认为没有必要 虽然您的意见将不胜感激,因为我是 laravel 的新手

尝试在 laravel 中对用户进行身份验证时,请使用以下语法(您可以将其修改为您希望它检查的字段(。此代码的作用是检查您的数据库,然后如果尝试成功,它将创建用户会话。

if (Auth::attempt(['email' => $email, 'password' => $password])) {
// redirect or do anything else
}

有关更多详细信息,您可以在此处查看:https://laravel.com/docs/5.7/authentication#authenticating-users

====

==================================我将尝试解释您当前的语法(其中的一部分(

$validCredentials = Hash::check($request['password'], $request->get('password'));
if ($validCredentials) {
Session::flash('login','login Successful!');
}

这是我对您的代码的简短解释:

$validCredentials.............

仅使用哈希检查密码是否正确,不进行任何会话或 cookie。 这不会真正对用户进行身份验证。 它只检查密码是否为 true

if ($validCredentials) {
Session::flash('login','login Successful!');
}

您必须了解的是,Flash 会话只是短期的(仅在下一页上可用,如果用户更改页面/刷新页面,它将消失(。

并且 Flash 会话仅在您使用我上面写的代码创建长期会话(用户真正登录(时才有效

最新更新