首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在laravel 5.4中有没有办法跟踪登录用户花费了多少时间?

在 Laravel 5.4 中,可以使用内置的 Auth facade 和 Login 事件来跟踪登录用户花费的时间。下面是一个实现的示例:

  1. 首先,确保你已经配置好了 Laravel 的认证系统,并且用户可以成功登录。
  2. app/Providers/EventServiceProvider.php 文件中,注册 Login 事件的监听器。在 boot 方法中添加以下代码:
代码语言:php
复制
use Illuminate\Auth\Events\Login;
use Illuminate\Support\Facades\Event;

public function boot()
{
    parent::boot();

    Event::listen(Login::class, function ($event) {
        $event->user->last_login_at = now();
        $event->user->save();
    });
}
  1. 在用户模型(通常是 app/User.php)中,添加一个 last_login_at 字段来存储用户的最后登录时间。确保在模型中将该字段添加到可填充的属性列表中:
代码语言:php
复制
protected $fillable = [
    // 其他字段...
    'last_login_at',
];
  1. 现在,每当用户成功登录时,Login 事件将被触发,监听器将更新用户模型的 last_login_at 字段为当前时间。

要获取用户花费的时间,你可以在需要的地方使用以下代码:

代码语言:php
复制
use Illuminate\Support\Facades\Auth;

// 获取当前登录用户
$user = Auth::user();

// 获取最后登录时间
$lastLoginTime = $user->last_login_at;

// 计算花费的时间
$spentTime = $lastLoginTime->diffInSeconds(now());

以上代码将返回用户最后登录时间与当前时间之间的秒数差,即用户花费的时间。

这是一个基本的实现示例,你可以根据自己的需求进行扩展和优化。关于 Laravel 的更多信息和文档,请参考 Laravel 官方文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Laravel Vue 前后端分离 使用token认证

前台用户登录成功后,后台给前台返回token。之后前台给后台发请求每次携带token。 原理也非常简单: 前天在请求头中添加 Authorization,如下 ?...前台向后台发起请求时要携带一个token 后台需要做一个返回当前登录用户的信息的api,地址是 /api/user 先添加路由,当给 route/api.php 添加 Route::middleware.../auth.php中有下面的关键配置 'guards' => [ 'web' => [ 'driver' => 'session',...方法如下 注意,下面的是Laravel5.4的修改方法。新版本可能有细微区别,只要知道原理就能自己改了。...为了安全,可以实现下面的功能: 每次登录成功后刷新api_token为新值 其实 Laravel 官方提供了一个 Laravel Passport 的包。

4.1K20

php系列二之phpstorm Xdebug和laravel常见问题整理

使用 composer 安装插件 composer require barryvdh/laravel-ide-helper config 目录里的 app.php 文件中的'providers'添加如下内容...生成代码跟踪支持 php artisan ide-helper:generate 5.4. php artisan serve 启动服务 artisan 的 serve 命令还支持两个参数: host...laravelphpstorm中的配置主要参考:https://www.jetbrains.com/help/phpstorm/laravel.html,这里只是列出Debug Artisan commands...初始化laravel程序时通过修改库的方式添加了一个用户,校验不通过的问题 Auth.attempt调用了: \Illuminate\Auth\SessionGuard::attempt: public...BcryptHasher(); $hashPass = $hasher ->make("123456"); printf($hashPass); 将打印出来的结果添加到库中的密码栏即可用该用户名与密码登录

3.2K20

.Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈

部署完测试环境后保证我们这个测试环境没有其他用户访问,只有我们访问,免得其他用户的操作影响了我们。...是Web服务器上的函数执行花费了大量的时间还是数据库中的存储过程执行花费了大部分时间?到底每个函数,每个存储过程各自花费了多少时间呢?...(8)系统将打开IE浏览器,提示输入有效的用户名和密码,过几十秒钟后,首页就可以完整展示出来了。SQL Server Profiler中也跟踪到了大量首页载入时执行的SQL语句和存储过程。...(11)使用VS打开程序源代码,或者是ANTS Profiler中,点击查看BindTable方法,我们可以看到该方法中有两个函数调用比较耗时,一个是378行,花费了11.1秒,另一个是38行,花费了...使用同样的方法,用ANTS Profiler和SQL Server Profiler就可以找出具体是哪个函数最耗时,耗了多少时间,哪个存储过程最耗时,耗了多少时间

57020

Wizard 开源文档管理系统 1.0 发布啦

这个项目是 我 2017年就开始开发的,起初只是想做一款能够公司内部把Swagger文档管理起来的工具,但在这近两年的时间里,一直断断续续的为其添加各种功能,现在终于下决心发布1.0版本了,目前支持三种类型的文档管理...所以虽然项目创建的时间为 2017年7月27日,但是实际上真正开始的时间应该算是 2017年7月31日。 ?...文档差异对比 团队协助中,经常会出现很多人修改同一份文档,为了避免冲突,文档修改后,其它人在提交旧的历史版本时,系统会提示用户文档内容发生了变更,用户可以通过文档比对功能找出文档中有哪些内容发生了修改...LDAP支持 很多公司都会使用 LDAP 来统一的管理公司员工的账号,员工的公司内部的所有系统中都是用同一套帐号来登录各种系统比如 Jira,Wiki,Gitlab 等,Wizard 也提供了对 LDAP...文档附件,文档分享,统计,文档排序,模板管理,文档评论 … 关于代码 项目采用了 Laravel 框架开发,目前版本已经升级到最新的 5.8(最开始为5.4,一路升级过来)。

2.6K30

Laravel 5.0 之 Middleware (Filter-Style)

你可能还留意到原本应该是路由过滤器的地方,变成了对 Middleware 的引用。 实际上给 Laravel 应用添加自定义的 Middleware 以前的版本中就有了。...假设你的应用——路由,控制器,业务逻辑——是图中的绿色部分,从图中可以清晰地看到,用户请求先经由多个中间层才能到达你的应用,然后再经由更多的中间层进行处理。... Laravel 5 中有两种主要的方法可以绑定 middleware. 两种方法都从 App\Http\Kernel 开始。...我花了一些时间来研究这个问题,但 Taylor(译注:Laravel 框架作者) 指出了 "before" middleware 和 "after" middleware 的区别在于 middleware...而且要修改一个 Laravel middleware 使之可以单独的 StackPHP 风格的语法下工作,也不了多少工夫。

2K40

Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解

推荐大家一点点时间,将自己的Laravel更新至5.6版本。 在后台开发时,我们经常需要获取用户之前操作页面的地址并生成一个返回之前页面的链接。...帮助函数中有一些很常用到的,比如Paths中的public_path及storage_path,Miscellaneous中的dd、view、session等。...author=eagle 如果我们该页面点击了某个操作,那么我们的控制器中,我们输出 echo url()- previous(); 会发现输出的结果与我们之前操作的页面的url一致: //www.zalou.cn...author=eagle 全局函数可以blade模板中直接使用,所以如果我们要创建一个返回按钮,我们可以view中使用以下代码: <a href="{{ url()- previous() }}"...本文主要讲解了Laravel框架使用url()全局函数返回前一个页面的地址的方法,更多关于Laravel框架的使用技巧请查看下面的相关链接

1.3K20

良好的BUG报告可以为您节省宝贵的时间

用户的反馈报告、开发人员、测试人员或一级技术支持. 一份糟糕的BUG报告给他们带来时间上的开销. 除了一些(大多数)开源项目,人们花费了宝贵时间,但是这也意味着他们花费了金钱。...如果你是自由职业者或者在做生意, 你可以用这些时间做其他的事情. 就好比赚钱,你可以用这些时间赚钱,而不是更多时间而一分钱挣不到....也有一些你没有办法访问日志文件,这样的话他们也就不会问你要日志。...译: 大概意思就是,多少努力多少回报,你BUG上下了多少工夫,那么它给你带来的受益也成正比的。 也许你会记住今天学到的,或许你改天会创建一个这样的票务系统。我肯定会这么做的。...PS: 如果你知道这是谁说的,我一定会很感谢他/她 ---- 我希望这篇文章能够让你了解BUG报告的重要性,也希望以后你在对BUG的处理上多少有些帮助。

35730

详解将数据从Laravel传送到vue的四种方式

在过去的两三年里,我一直研究同时使用 Vue 和 Laravel 的项目,每个项目开发的开始阶段,我必须问自己 “我将如何将数据从 Laravel 传递到 Vue ?”。...例如,如果我的环境变量文件中有 API_DOMAIN=example.com,我可以我的 Vue 组件(或使用 mix 编译的其他 JavaScript )中使用 process.env.API_DOMAIN...如果你使用的是 Laravel5.4 及更低的版本,将该行 Tymon\JWTAuth\Providers\LaravelServiceProvider::class, 加入 config/app.php... API 的登录方法中,你将使用相同的 auth()- attempt 方法作为默认的 Laravel 应用程序,但从它返回的除外是你应该传递回的 JSON Web Token 令牌。...回到你的 Laravel 应用,你可以使用他们的令牌来引用特定用户的请求。将应该显示给他们的数据返回回去。 以上就是本文的全部内容,希望对大家的学习有所帮助。

8K31

Laravel 5.2+ 使用url()全局函数返回前一个页面的地址

推荐大家一点点时间,将自己的Laravel更新至5.6版本。 在后台开发时,我们经常需要获取用户之前操作页面的地址并生成一个返回之前页面的链接。...而Laravel从版本5.2+开始,便提供了一系列全局帮助函数(Helper Functions)来简化我们的工作: https://laravel.com/docs/5.2/helpers#method-url...帮助函数中有一些很常用到的,比如Paths中的public_path及storage_path,Miscellaneous中的dd、view、session等。...author=eagle 如果我们该页面点击了某个操作,那么我们的控制器中,我们输出 echo url()->previous(); 会发现输出的结果与我们之前操作的页面的url一致: http...author=eagle 全局函数可以blade模板中直接使用,所以如果我们要创建一个返回按钮,我们可以view中使用以下代码: <a href="{ { url()->previous

1.3K20

电商网站分析实践(中)

例如,有100次来自广告的访问,其中有三次达成了转化,转化率即为3%。不过也要注意的是,有些网站的客单价差别很大,如果某段时间低价值的订单数较多也可以提升网站的转化率但可能对于网站的意义并不是那么大。...Google Analytics中,订单转换率(电子商务转化率)是一个标准的指标,几乎在所有的报告都可以找到它,不过前提是你已在订单达成页面上配置好了电子商务跟踪。...例如,如果有大量用户结账时要求他们必须先登录的时候离开,那么我们不妨考虑添加一个选项,以便让用户以访客的身份结账,某知名电商网站在增加这个选项后订单转化率提升了23%。...4、购物车里的商品删除动作 我们会监控有多少商品被放入了购物车,同样,我们也要监控购买完成之前有多少商品被用户从购物车中删除掉。...跟踪付款方式将有助于我们了解以下信息:使用银联卡与使用支付宝的用户他们之间的支付行为是否有差别?使用招行卡的用户是否比使用农行卡的用户愿意更多的钱购物?

1.6K41

Laravel中的Auth模块详解

本文是基于Laravel 5.4 版本的本地化模块代码进行分析书写; 模块组成 Auth模块从功能上分为用户认证和权限管理两个部分;从文件组成上,IlluminateAuthPasswords目录下是密码重置或忘记密码处理的小模块...,IlluminateAuth是负责用户认证和权限管理的模块,IlluminateFoundationAuth提供了登录、修改密码、重置密码等一系统列具体逻辑实现; 下图展示了Auth模块各个文件的关系...id,users这个provider查询出此用户;api认证是基于token值交互,也采用users这个provider; defaults项显示默认使用web认证; 认证 Session绑定认证信息...Laravel的重置密码功能是怎么实现的: public function reset(array $credentials, Closure $callback) { // 验证用户名、密码和 token...对于定义abilities数组的权限: 当前用户是否具备common.dashboard.list权限:Gate::allows('common.dashboard.list') 当前用户是否具备common.dashboard.list

1.2K20

Laravel API教程:如何构建和测试RESTful API

本文中,我们将探讨如何构建和测试使用Laravel进行身份验证的强大API。我们将使用Laravel 5.4,所有的代码都可以GitHub上参考。...来源百度百科 资源(Resources) 资源将是actions的目标,我们的文章和用户的情况下,他们有自己的端点: /articles /users 在这个laravel api教程中,资源将在我们的数据模型中具有...$table->timestamps() 将会为我们生成时间戳——created_at和updated_at时,但是不用担心设置一个默认的,Laravel将在需要时更新这些字段。...认证 Laravel中有许多实现API身份验证的方法(其中之一是Passport,实现OAuth2的好方法),但在本文中,我们将采用一个非常简化的方法。...它现在不节省大量的时间,但随着项目的增长,它有助于保持路由DRY。 测试我们的端点 Laravel包含通过phpunit.xml已经设置的PHPUnit开箱即用的集成。

20.3K20

使用 Google Analytics 统计页面加载时间

使用 Google Webmaster 查看网站性能 首先我们可以 Google Webmaster 工具中查看哪些页面速度速度比较慢,具体方法是,登录 Google Webmaster,选择你要查看的站点...Google Analytics 事件跟踪是对独立于网页浏览的事件进行跟踪,用来记录不产生页面浏览的用户交互行为的。通常的网站跟踪模式,是基于页面浏览行为的。...使用 Google Analytics 事件跟踪功能统计页面加载时间 使用 Google Analytics 事件追踪功能来统计页面加载时间的大概的想法是,页面开始加载( 标签之后)的时候增加一个计时器...,页面加载完成之后( 标签之前)计算出共花费了多少时间,然后把时间差传给 Google Analytics 的 _trackEvent 函数。...Analytics 事件跟踪功能统计页面加载时间 ----

1.6K20

Laravel 中使用简单的方法跟踪用户是否在线(推荐)

今天,我的任务是,Laravel应用程序用户个人资料页面上,用户名旁边添加一个绿点,表示他们是否在线。我首先想到的是,我们将需要启动一个node.js服务器并跟踪每个用户的活动套接字连接。...然后用当前登录用户套接字,我们可以实时更新在线状态!唯一的问题是,这是我们目前的要求,有点超过顶部,并没有完全必要的,直到我们的功能,需要达到第二个准确性,如实时聊天。...就我们所知,MySpace用来显示用户是否在线的方式是基于他们在网站上的最后一项活动。如果他们的最后一次活动X分钟内,我们会显示“在线”徽章,如果没有,我们不会。简单!...让我们为用户的上次活动在用户表中添加一个字段,并且在请求每个页面时更新它。然后当我们需要检查用户是否在线,我们可以将该时间戳与当前时间戳进行比较,如果在X分钟内,则他们在线!...总结 以上所述是小编给大家介绍的Laravel 中使用简单的方法跟踪用户是否在线,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

2.2K41

Laravel框架处理用户的请求操作详解

本文实例讲述了Laravel框架处理用户的请求操作。...4、中间件 Laravel提供了中间件机制用于对用户的请求request进行过滤,并在返回response之前进行处理。...比如认证验证中间件会验证用户是否经过认证(如登录),如果用户没有经过认证,中间件会将用户重定向到登录页面,而如果用户已经经过认证,中间件就会允许请求继续往前进入下一步操作。 ?...4.2、注册路由 中间件的注册app/Http/kernel.php文件中的Kernel类,其中有三个属性: $middleware属性用于定义全局中间件,每个http请求都需要通过全局中间件。...中使用$_SESSION来服务器端储存用户登录信息等数据,Laravel中不使用PHP默认的session,而是自己实现了一套session机制。

9.4K41

程序猿必读-防范CSRF跨站请求伪造

CSRF攻击最早在2001年被发现,由于它的请求是从用户的IP地址发起的,因此服务器上的web日志中可能无法检测到是否受到了CSRF攻击,正是由于它的这种隐蔽性,很长时间以来都没有被公开的报告出来,直到...整个步骤大致是这个样子的: 用户小明在你的网站A上面登录了,A返回了一个session ID(使用cookie存储) 小明的浏览器保持着A网站的登录状态,事实上几乎所有的网站都是这样做的,一般至少是用户关闭浏览器之前用户的会话是不会结束的...攻击者伪造请求的时候是无法获取页面中与登录用户有关的一个随机值或者用户当前cookie中的内容的,因此就可以避免这种攻击。...语句中有四个条件,只要任何一个条件结果为true则任何该请求是合法的,否则就会抛出TokenMismatchException异常,告诉用户请求不合法,存在Csrf攻击。...这是因为Laravel认为这三个请求都是请求查询数据的,如果一个请求是使用GET方式,那无论请求多少次,无论请求参数如何,都不应该最数据做任何修改。

2.5K20

Laravel5.3之Errors Tracking神器——Sentry

Sentry是一款可用于Production环境的错误跟踪工具,可实时通知Production环境中用户由于一些不可预料行为(或者程序写的有问题)导致程序Crash或Exception,Sentry可以通过...并且这款神器已经RightCapital得到长时间应用了,结合HipChat和JIRA用起来很顺手,值得推荐。...Sentry for Laravel中介绍了如何集成进Laravel,主要就是安装下Sentry Laravel包: // 生产环境也需要这个包,不需要加 --dev composer require...,然后.env配置下SENTRY_DSN。...登录进刚刚注册的账号后,先创建个Project得到这个Project的SENTRY_DSN(点击 New Project): 然后点击左上角选择刚刚创建的Project如个人创建的Sentry/Development

3.7K71

3分钟短文:为了你少跳坑,Laravel写好了用户授权

引言 为了留存用户,我们会想尽办法获取用户的注册,并将其留在应用内。 laravel开发好了一部分用户注册和登陆的代码,如果图省事不要二次开发的, 拿来用就可以了。...users数据表 用户的数据和信息必然在数据库内,所以laravel自带了User模型, app/User.php 文件内, 内部代码声明了必要的部分: namespace App; use Illuminate...命令行执行迁移指令: php artisan migrate 执行成功后使用mysql客户端连接数据库,打印users表结构,如下图: 登陆注册 有了users表的数据支持,还有laravel内置的用户逻辑...Auth::routes(); 这个就跟我们使用 Route::resource() 方法会默认创建restfulapi需要的所有控制器方法一样,这个 Auth::routes() 所包含的内容, 都是跟用户注册登录...预注册的路由如下图: 这洋洋洒洒的路由和控制器方法,如果我们自己设计,那得费多少时间?这下好,拿来直接用了。要不说laravel真香呢! 下面是默认的注册前端页面。

56720

3分钟短文:为了你少跳坑,Laravel写好了用户授权

引言 为了留存用户,我们会想尽办法获取用户的注册,并将其留在应用内。 laravel开发好了一部分用户注册和登陆的代码,如果图省事不要二次开发的, 拿来用就可以了。...users数据表 用户的数据和信息必然在数据库内,所以laravel自带了User模型, app/User.php 文件内, 内部代码声明了必要的部分: namespace App; use Illuminate...命令行执行迁移指令: php artisan migrate 执行成功后使用mysql客户端连接数据库,打印users表结构,如下图: 登陆注册 有了users表的数据支持,还有laravel内置的用户逻辑...Auth::routes(); 这个就跟我们使用 Route::resource() 方法会默认创建restfulapi需要的所有控制器方法一样,这个 Auth::routes() 所包含的内容, 都是跟用户注册登录...预注册的路由如下图: 这洋洋洒洒的路由和控制器方法,如果我们自己设计,那得费多少时间?这下好,拿来直接用了。要不说laravel真香呢! 下面是默认的注册前端页面。

90300
领券