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保持用户登陆状态相关推荐

  1. php编写用户登录页面,js+php实现静态页面实时调用用户登陆状态的方法

    这篇文章主要介绍了js+php实现静态页面实时调用用户登陆状态的方法,采用在静态页面中使用js调用php页面从而实现用户登录状态的实时调用功能,需要的朋友可以参考下 本文实例讲述了js+php实现静态 ...

  2. PHP,操作多个用户,多个线程的session,实现用户登陆状态session值的自动更新

    代码: $my_session_id=$_COOKIE[session_name()];//保存当前人员的session id; session_start(); .......//一些操作,比如验证 ...

  3. oralce 数据库监听日志状态及目录:查看监听(使用grid用户登陆):

    数据库监听日志状态及目录:查看监听(使用grid用户登陆): su - grid 密码:grid [grid@db1 ~]$ lsnrctl LSNRCTL> status LSNRCTL> ...

  4. 魔方APP项目-07-客户端提交登录信息、在APICloud中集成防水墙验证码,前端获取显示并校验验证码、服务端校验验证码、保存用户登录状态,APICloud提供的数据存储、客户端保存用户登陆数据

    用户登录 一.客户端提交登录信息 html/login.html,代码: <!DOCTYPE html> <html> <head><title>登录& ...

  5. 小白开发微信小程序,用户清理后台导致登陆状态立刻失效是什么原因呀

    小白整了个登陆账号然后信息查询小程序,用户正常点小程序右上角的退出是没问题的,我测试是可以保持登陆状态的. 好奇怪呀.云函数的数据库里的用户信息我的权限已经设置为所有人可读了,基础库是2.2.4及以上 ...

  6. 系统进程管理及用户登陆监控

    1.图形中如何查看进程gnome-system-monitor2.如何用命令查看进程ps 进程查看工具 -a shell中运行的进程 -x 不在shell重运行的进程 -u 查看进程用户 -l 显示进 ...

  7. linux修改密码和宽限天数,Linux chage用法详解:修改用户密码状态

    除了passwd -S命令可以查看用户的密码信息外,还可以利用 chage 命令,它可以显示更加详细的用户密码信息,并且和 passwd 命令一样,提供了修改用户密码信息的功能. 如果你要修改用户的密 ...

  8. JavaWeb 基于Session的用户登陆注销实现

    通过Session来存储用户的部分登陆信息来验证用户是否在线,这应该时最容易实现的一种Web端方案,本文以SSM(Spring.SpringMVC.myBatis)框架为载体,来具体实现这套登陆系统. ...

  9. 借助axios的拦截器实现Vue.js中登陆状态校验的思路

    在做Vue中的登陆校验时,思路应该是这样的:先确定一个路由页面是否需要登陆才能访问,如果需要,就需要用户登陆,如果不需要,用户直接可以访问. 那么,首先来说,后台系统中,不一定每一个页面都要进行登陆权 ...

  10. Django里自定义用户登陆及登陆后跳转到登陆前页面的实现

    因为下一步要和公司的UM帐号作集成,所以分离出登陆模块,及实现其基本功能是必不可少的. 登陆倒容易,但要实现在登陆后,跳转到登陆前的网页,且显示用户的登陆状态,花了点时间查找代码, 测试了五六种方式, ...

最新文章

  1. 推荐系统数据集大列表
  2. C++多态中虚函数的深入理解
  3. 方法描述Mybatis使用之NEIS项目
  4. linux等陆不上ftp,vsftp连接不上解决方法
  5. bigpipe merge对F5做批量配置
  6. php学习日志(3)-echoprint
  7. pythonbool类型数组生成_对numpy中布尔型数组的处理方法详解
  8. 计算机符串长度的函数,用js写一个函数,计算出字符串的长度
  9. CSS 轮廓(outline)
  10. HP 360G5 IO性能提高方法
  11. DWF是个什么格式,要怎么进行相应的格式转换?
  12. MySQL按日期依次统计
  13. caozuoqilai day4
  14. Echarts 鼠标hover时柱状图设置背景色
  15. imx6q android nfs normal boot log
  16. JVM问题分析调优经验
  17. 八皇后问题——列出所有的解,可推至N皇后
  18. python实现寻找最长回文子串
  19. 一文看懂虚假新闻检测(附数据集 论文推荐)
  20. 个人网站站长赚钱创收方式

热门文章

  1. 520男生送什么礼物好、实用小礼物合集
  2. STM32第九课(Input Capture, HAL)
  3. 【Laravel系列6.3】框架启动与服务容器源码
  4. ARM(ARM处理器) x64和x86
  5. 人脸识别错误代码437是什么意思_英雄联盟手游unabletologin什么意思?显示unabletologin解决方法[多图]-攻略...
  6. 2021年最新互联网大厂中秋礼盒PK!
  7. 群发邮件服务器软件,邮件服务器软件:邮件群发是否已死?
  8. Python 后端统一社会信用代码校验
  9. 阿里、腾讯裁员,2022金三银四Android开发该何去何从?
  10. iOS TableView实现QQ好友列表(一)