php - Laravel 7 - 如何使“记住我”功能正常工作?
问题描述
我正在尝试使用在我的网站中实现记住我的功能,Auth::viaRemember()
但它总是返回一个false
. 是什么原因造成的以及如何解决这个问题?
remeber_token 生成并将其存储在数据库中。
这是我尝试过的事情:
- 在中将值
'expire_on_close'
从false更改为trueconfig/session.php
- 清除 cookie 和 google chrome 浏览器缓存,然后重新启动我的浏览器
- 运行
php artisan config:cache
和php artisan route:clear
- 登录并记住我检查然后注销(查看凭据是否已保存)。
这是我login
里面的方法代码LoginController.php
:
public function login(Request $request)
{
$this->validate($request, [
'email' => 'required|email',
'password' => 'required',
]);
$remember = $request->has('remember') ? true : false;
if (Auth::attempt(['email' => $request->input('email'), 'password' => $request->input('password')], $remember))
{
if(Auth::viaRemember())
{
dd("remembered successfully");
}else{
dd("failed to remember");
}
return view('home');
}else{
return back()->with('error','your username and password are wrong.');
}
}
这是我的文件片段代码login.blade.php
:
<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>
这是登录页面以防万一:
登录没有问题,成功重定向到首页。唯一的问题是凭据没有显示,或者登录表单不记得之前登录的凭据,并选中了记住我。
这篇文章有同样的问题,它的参考资料/帖子包括:
Auth::viaRemember() 在 laravel 5.4 中不起作用(意味着即使在成功登录后也总是返回 false),但不幸的是,所提供的解决方案都不适合我..
附言
到目前为止,我正在使用 Laravel Framework 7.14.1 和最新的 google chrome 版本(版本 83.0.4103.97(官方构建)(64 位))
解决方案
推荐阅读
- html - 不应该移动的div?
- c++ - 如何在 C++ 中添加计时器?
- telegram-bot - 找不到通过 javascript 使用电报确认对话框的方法
- r - 防止辅助绘图轴从图形区域掉落
- primefaces - PrimeFaces 10:sortBy 在 p:dataTable 中不起作用
- java - 为什么我的客户端没有从我的 Java 套接字服务器返回所需的期货
- c++ - 与 Windows 相比,Linux 上的分数不同......内存问题?
- php - 通过字符串获取数组值
- python - 如何从数据框 pandas 验证 Pan 卡号
- python - 在 GUI 中分析 CSV 文件