1. 用户登录成功后,生成一个【记住我token】并存储于cookie中
// 生成记住我token,generateRandomToken为你自定义的函数,不是laravel内置的
$remember_token = generateRandomToken();
// 将记住我token存储于cookie中,并将有效期设为一周,laravel默认是5年
setCookie('remember_token', encrypt($remember_token), time() + 604800);
2. 同时将生成的【记住我token】存于数据库中
// 将记住我token存储于数据库中
$user->remember_token = md5($remember_token);
$user->save();
3. 用户再次访问网站时,检查并自动登录
// 检查请求中是否包含记住我token
if ($request->hasCookie('remember_token')) {
// 解密cookie中的记住我token
$remember_token = decrypt($request->cookie('remember_token'));
// 在数据库中查找对应的用户记录
$user = User::where('remember_token', md5($remember_token))->first();
// 如果存在,则自动登录该用户
if ($user) {
Auth::login($user);
}
}
不懂的小伙伴欢迎在评论区随时提问!