fastadmin保持用户登陆状态
fastadmin登陆成功后的处理:
//事件监听Hook::add('user_login_successed', function ($user) use ($auth) {$expire = input('post.keeplogin') ? 630 * 86400 : 0;Cookie::set('uid', $user->id, $expire);$token=$auth->getToken();Cookie::set('token', $token, $expire);});
会将uid和token保存在cookie中
与此同时,对应的token和user_id根据config配置保存
config:
登陆状态保持:
当调用需要登陆才能访问的方法时会调用Auth.php中的init方法,判断用户是否登陆
/*** 根据Token初始化** @param string $token Token* @return boolean*/public function init($token){if ($this->_logined) {return true;}if ($this->_error) {return false;}$data = Token::get($token);if (!$data) {return false;}$user_id = intval($data['user_id']);if ($user_id > 0) {$user = User::get($user_id);if (!$user) {$this->setError('Account not exist');return false;}if ($user['status'] != 1) {$this->setError('Account is locked');return false;}$this->_user = $user;$this->_logined = true;$this->_token = $token;//初始化成功的事件Hook::listen("user_init_successed", $this->_user);return true;} else {$this->setError('You are not logged in');return false;}}
请求的cookie中会携带sessionId、token等信息,传入token执行$data = Token::get($token);
传入的token通过连接数据库取得对应的handler
handler存有对应user_id、token、过期时间等数据
然后通过获取到的user_id判断user模型里是否有相应记录,有则登陆成功,反之则需要登陆。
cookie保存的是uid和token,PHPSESSID。登陆主要用到的是cookie中的token,token如果伪造是无法进行登陆的。PHPSESSID主要用在表单提交token验证。
因为cookie保存了uid和token如果用户禁用了cookie,那么就会无法请求需要登陆状态的方法,甚至无法登陆,也无法提交表单。
fastadmin保持用户登陆状态相关推荐
- php编写用户登录页面,js+php实现静态页面实时调用用户登陆状态的方法
这篇文章主要介绍了js+php实现静态页面实时调用用户登陆状态的方法,采用在静态页面中使用js调用php页面从而实现用户登录状态的实时调用功能,需要的朋友可以参考下 本文实例讲述了js+php实现静态 ...
- PHP,操作多个用户,多个线程的session,实现用户登陆状态session值的自动更新
代码: $my_session_id=$_COOKIE[session_name()];//保存当前人员的session id; session_start(); .......//一些操作,比如验证 ...
- oralce 数据库监听日志状态及目录:查看监听(使用grid用户登陆):
数据库监听日志状态及目录:查看监听(使用grid用户登陆): su - grid 密码:grid [grid@db1 ~]$ lsnrctl LSNRCTL> status LSNRCTL> ...
- 魔方APP项目-07-客户端提交登录信息、在APICloud中集成防水墙验证码,前端获取显示并校验验证码、服务端校验验证码、保存用户登录状态,APICloud提供的数据存储、客户端保存用户登陆数据
用户登录 一.客户端提交登录信息 html/login.html,代码: <!DOCTYPE html> <html> <head><title>登录& ...
- 小白开发微信小程序,用户清理后台导致登陆状态立刻失效是什么原因呀
小白整了个登陆账号然后信息查询小程序,用户正常点小程序右上角的退出是没问题的,我测试是可以保持登陆状态的. 好奇怪呀.云函数的数据库里的用户信息我的权限已经设置为所有人可读了,基础库是2.2.4及以上 ...
- 系统进程管理及用户登陆监控
1.图形中如何查看进程gnome-system-monitor2.如何用命令查看进程ps 进程查看工具 -a shell中运行的进程 -x 不在shell重运行的进程 -u 查看进程用户 -l 显示进 ...
- linux修改密码和宽限天数,Linux chage用法详解:修改用户密码状态
除了passwd -S命令可以查看用户的密码信息外,还可以利用 chage 命令,它可以显示更加详细的用户密码信息,并且和 passwd 命令一样,提供了修改用户密码信息的功能. 如果你要修改用户的密 ...
- JavaWeb 基于Session的用户登陆注销实现
通过Session来存储用户的部分登陆信息来验证用户是否在线,这应该时最容易实现的一种Web端方案,本文以SSM(Spring.SpringMVC.myBatis)框架为载体,来具体实现这套登陆系统. ...
- 借助axios的拦截器实现Vue.js中登陆状态校验的思路
在做Vue中的登陆校验时,思路应该是这样的:先确定一个路由页面是否需要登陆才能访问,如果需要,就需要用户登陆,如果不需要,用户直接可以访问. 那么,首先来说,后台系统中,不一定每一个页面都要进行登陆权 ...
- Django里自定义用户登陆及登陆后跳转到登陆前页面的实现
因为下一步要和公司的UM帐号作集成,所以分离出登陆模块,及实现其基本功能是必不可少的. 登陆倒容易,但要实现在登陆后,跳转到登陆前的网页,且显示用户的登陆状态,花了点时间查找代码, 测试了五六种方式, ...
最新文章
- 推荐系统数据集大列表
- C++多态中虚函数的深入理解
- 方法描述Mybatis使用之NEIS项目
- linux等陆不上ftp,vsftp连接不上解决方法
- bigpipe merge对F5做批量配置
- php学习日志(3)-echoprint
- pythonbool类型数组生成_对numpy中布尔型数组的处理方法详解
- 计算机符串长度的函数,用js写一个函数,计算出字符串的长度
- CSS 轮廓(outline)
- HP 360G5 IO性能提高方法
- DWF是个什么格式,要怎么进行相应的格式转换?
- MySQL按日期依次统计
- caozuoqilai day4
- Echarts 鼠标hover时柱状图设置背景色
- imx6q android nfs normal boot log
- JVM问题分析调优经验
- 八皇后问题——列出所有的解,可推至N皇后
- python实现寻找最长回文子串
- 一文看懂虚假新闻检测(附数据集 论文推荐)
- 个人网站站长赚钱创收方式
热门文章
- 520男生送什么礼物好、实用小礼物合集
- STM32第九课(Input Capture, HAL)
- 【Laravel系列6.3】框架启动与服务容器源码
- ARM(ARM处理器) x64和x86
- 人脸识别错误代码437是什么意思_英雄联盟手游unabletologin什么意思?显示unabletologin解决方法[多图]-攻略...
- 2021年最新互联网大厂中秋礼盒PK!
- 群发邮件服务器软件,邮件服务器软件:邮件群发是否已死?
- Python 后端统一社会信用代码校验
- 阿里、腾讯裁员,2022金三银四Android开发该何去何从?
- iOS TableView实现QQ好友列表(一)