如何让用户一直保持登录呢?
请问我要怎么设置让用户可以一直保持登录,直到用户自己手动退出呢?我的代码如下:
$user = User::where('cellphone', $verifArray['cellphone'])->first();
if ($user) {
Auth::login($user);
// return redirect()->intended($fallback);
return response()->json(['info' => 'login']);
} else {
$user = User::create([
'cellphone' => $verifArray['cellphone'],
]);
Auth::login($user);
return response()->json(['info' => 'creat']);
}
我目前的代码是,用手机验证码登录,没有密码,验证通过如果匹配到一样的手机号,就登录,没有的话就新建一个用户,我看网上说用Auth::attempt
可以实现我想要的功能?我试了一下,不行啊,大家有没有别的办法?
或者说,我是应该直接修改laravel的配置文件,还是php.ini
归根结底就是修改 token/session 有效期
API认证
我觉得 你可以 做cookie 本地存储 如果他清了缓存就重新验证 然后 你也可以利用 redis 缓存用户的信息 给这个redis一个 有效时间 半年 如果用户点了退出 那么 删除对应用户的redis和本地cookie 如果你是没有用redis。只是用了session。你需要修改 session的过期时间 你每个用户应该都有一个唯一的session吧。修改对应用户的session过期时间就行了吧 没必要改php.ini 跟 laravel的 配置吧
我记得文档是这样写的,就记住了用户。
你写的代码有点冗余
你看这样会不会感觉好一点
attempt() 在你的需求中不太合适,应为 参数是用户名和密码, 如果密码错了(或根本不知道是否存在 用户名)你都不知道,还是要先判断。不如Auth::login() 这样是在
laravel不是提供现成的方案了么。。
记住用户 许多 web 应用程序在其登录窗体上提供 「记住我」 复选框。如果希望在应用程序中提供 「记住我」 功能,可以将布尔值作为第二个参数传递给 attempt 方法。
当此值为 true 时,Laravel 将无限期地对用户进行身份验证,或者直到用户手动注销。 users 表必须包含字符串 remember_token 列,该列将用于存储 「记住我」 标记。新的 Laravel 应用程序中包含的 users 表迁移文件已经包含此列:
use Illuminate\Support\Facades\Auth;
if (Auth::attempt(['email' => $email, 'password' => $password], $remember)) { // 正在为该用户执行记住我操作 ... }