在登录中注入一个步骤

Inject a step into login

我正在尝试在用户首次登录我的 api 时执行操作。我通过密码授予授权方法将 Laravel 6.2 与 Passport 一起使用。

我的用户模型有以下字段。

id, username, display_name, firstname, lastname, display_picture, locked, email, last_login, created_at, updated_at, deleted_at

最初我认为最好的启动位置是在将登录令牌发送给用户之前,但是由于用户从未在 last_login 字段为空之前登录过。但是问题是因为在这个阶段令牌永远不会发回给用户,我无法在用户进入创建阶段时确认用户的令牌。所以我的request guard没有登录用户信息

Auth()->guard('api')->user();

即returns 为空。关于如何完成此操作的任何想法?

这个答案不是 Laravel 特定的,但你的问题让我想起了我前段时间解决的一个问题。

我所做的是在用户对象上实现了一个 last_seen 字段 - 该字段在用户创建或帐户验证时未填充。如果 cookie 是旧的,它会在登录时填充并且有意义 activity。

如果用户登录时该字段为空,我没有将它们发送到用户区,而是将它们发送到教程,然后更新了该字段——如果该字段已经填充,那么我只是更新了该字段并将它们一起发送到用户区。


如果以任何有意义的方式记录用户操作,则可以用计算变量替换相同的字段。

此外,这对于停用未使用的帐户和 "status" 如果平台是社交平台都是有用的值。