在Symfony3中实现刷新登录时间、登录加1的功能需要自己写一个success handle。

简单讲一下创建success handle的流程,使用的环境如下
PHP版本:7.1.8
Symfony版本:3.3.5
默认管理员权限相关的Bundle名为AuthorizationBundle

首先我们在AuthorizationBundle下创建一个Service文件夹,用来储存所有与service相关的文件。建立一个AuthorizationHandle.php的文件,这个是我们用来实现success handle的代码文件。

因为实现success handle需要实现AuthenticationSuccessHandlerInterface接口中的方法,所以我们的handle类这么写

<?phpnamespace HuanYue\AuthorizationBundle\Service;use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\RouterInterface;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface;
use Symfony\Component\DependencyInjection\ContainerAwareTrait;class AuthorizationHandle implements AuthenticationSuccessHandlerInterface
{use ContainerAwareTrait;/*** This is called when an interactive authentication attempt succeeds. This* is called by authentication listeners inheriting from* AbstractAuthenticationListener.** @param Request        $request* @param TokenInterface $token** @return Response never null*/function onAuthenticationSuccess(Request $request, TokenInterface $token){$user = $token->getUser();$user->setLastLogin(new \DateTime());$user->save();return new RedirectResponse($this->container->get('router')->generate('huan_yue_admin_authorization_dashboard'));}
}

下面解释一下代码,AuthenticationSuccessHandlerInterface中的注释很清晰的写明了我们可以在onAuthenticationSuccess中实现我们的功能,并且最后需要返回一个Response。我们进行刷新登录时间、或者登录加1、或者其他什么操作后需要跳转到后台首页,因此需要生成一个RedirectResponse,我的代码里用到了Symfony container去获取router,所以需要使用Symfony提供给我们的Trait(注:在2.*版本中可以直接继承ContainerAware类)。到此,我们的success handel已经实现完成。

下一步,我们把我们的AuthorizationHandle注册到Symfony的Service中,在Resources\services.yml中添加

services:

huan_yue_authorization.authorization_handle:class: HuanYue\AuthorizationBundle\Service\AuthorizationHandlecalls:- [ setContainer, [ "@service_container" ] ]

最后一步,修改app\config\security.yml文件,在form_login下添加我们的success handle,代码如下

form_login:check_path: huan_yue_admin_authorization_loginlogin_path: huan_yue_admin_authorization_logindefault_target_path: huan_yue_admin_authorization_dashboardsuccess_handler: huan_yue_authorization.authorization_handle

到此,整个流程完成。

Symfony3实现刷新登录时间相关推荐

  1. Getway jwt 单点登录以及刷新token时间

    Getway jwt 单点登录以及刷新token时间 不用nosql或其他 1.集成jwt pom依赖: <dependency><groupId>io.jsonwebtoke ...

  2. token 过期刷新令牌_Passport 验证 Token 方法和持续刷新过期时间问题

    项目介绍 最近在做一个后台项目,目标是登录后无操作30分钟后自动过期,一直操作的情况下,过期时间一直刷新(目前不考虑每次操作修改对数据库的压力) token有效期检测 操作后自动刷新过期时间 管理员手 ...

  3. 查看用户登录时间以及命令历史

    查看用户登录时间以及命令历史 文章目录: 你有没有遇到这种情况,就是有一台服务器,上面有多个人登陆使用,但是突然右某一天,服务器突然出现了问题,然后你没有操作,但是此时你却成为了怀疑的对象,搞出问题的 ...

  4. YII2 实现登录时候修改最新登录时间

    YII2 实现登录时候修改最新登录时间 YII2保存最新登录时间主要技巧:为 EVENT_AFTER_LOGIN 事件绑定一个方法,在方法中保存最新时间 public function login() ...

  5. 获取网络时间并刷新本地时间(源码2)

    因为上次那个获取网络时间失效了(使用的是37端口),获取网络时间并刷新本地时间(源码1) 所以网上又找了一份代码,使用的是123端口,虽然没有测试成功,这里也做下记录,估计是本机环境问题,过两天再进行 ...

  6. Powershell 比较AD和Exchange的用户登录时间

    今天早上朋友问我如何获取指定某个时间段的AD用户登录时间和相关的邮箱登录时间. 豆子公司的Exchange已经转移到Office365上,首先远程的导入AD模块,本地导入MSOnline的模块,这样我 ...

  7. 局域共享解决——用户账户限制,可能的原因包括不允许空密码,登录时间限制...

    http://blog.163.com/lenovo_gxr/blog/static/5527719720145583144126/ 在客户端访问共享遇到的错误之八: 错误提示框为如图:用户账户限制, ...

  8. java记录登陆时间_Spring security如何实现记录用户登录时间功能

    一.原理分析 spring security提供了一个接口 AuthenticationSuccessHandler,该接口中只有一个方法,用来进行登录成功后的操作 public interface ...

  9. php实现最后登录时间,php实例之基于Cookie的登录表单和获取最后登录时间

    1,html部分 基于cookie的登录表单,密码提交页-www.jbxue.com action="CookieBasedPasswordLogin.php"> 请输入您的 ...

最新文章

  1. Windows下安装PHP开发环境
  2. 我能想到最浪漫的七夕,就是让AI唱一首“我爱你”!
  3. 我的公众号 - Old Artist
  4. 完美解决Ubuntu16.04虚拟机窗口自适应问题
  5. Spring Session官方介绍及spring框架学习方法
  6. php-fpm和php,phpcgi和phpfpm的区别是什么
  7. C# 中的只读结构体(readonly struct)
  8. VS2008 只生成DLL不生成lib文件
  9. 短小精悍-机器学习核心概念、模型、基础知识点简明手册-免费分享
  10. ruby中调用dll的诡异错误
  11. 北大飞跃手册_飞跃手册 | 保研篇——北京大学
  12. 【渝粤题库】陕西师范大学202291商业银行经营学作业(高起专)
  13. 微信扫码登录自定义二维码显示信息
  14. 点阵墨水屏的使用以及图像预处理
  15. llqrcode.js识别二维码,解析二维码信息
  16. 微信小程序接入腾讯云的对象存储
  17. 正版七日杀服务器存档,如何在网吧保存steam七日杀存档 | 手游网游页游攻略大全...
  18. 【微信公众号h5】授权
  19. 通用流量录制回放工具 jvm-sandbox-repeater 尝鲜 (二)——repeater-console 使用
  20. HTML_hao123 1

热门文章

  1. 如何为windows服务添加安装程序(转)
  2. redis的rpm包下载安装
  3. ASP.NET Web API 基本操作(CRUD)
  4. PO、BO、VO、DTO、POJO、DAO的区别
  5. js学习-DOM之动态创建元素的三种方式、插入元素、onkeydown与onkeyup两个事件整理...
  6. Struts2.3+Spring4.0
  7. a Line Segment Detector
  8. 《中国人工智能学会通讯》——10.10 结束语
  9. WebGIS中地图恢复初始位置及状态
  10. [转] Java多线程发展简史