我已经创建了一个登录页面,但是我无法通过它,因为它说对不起,您的会话已过期。请刷新,然后重试。 这是我的控制器...
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class loginController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
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新手的高度赞赏
答案 0 :(得分:0)
在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。并不能真正验证用户身份。它只会检查密码是否正确
if ($validCredentials) {
Session::flash('login','login Successful!');
}
仅Flash会话。您必须了解的是Flash会话只是短期的(仅在下一页可用,如果用户更改页面/刷新页面,该会话将消失)。
仅当您使用上述代码创建长期会话(用户确实登录)时,Flash会话才有效