php - 在登录中注入一个步骤
问题描述
我正在尝试在用户第一次登录我的 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 字段为空之前从未登录过。然而问题是因为在这个阶段令牌永远不会发送回用户,当他们进入创建阶段时,我无法确认用户的令牌。所以我的请求保护没有登录的用户信息。
Auth()->guard('api')->user();
即返回null。关于我如何做到这一点的任何想法?
解决方案
这个答案不是 Laravel 特有的,但你的问题让我想起了我前段时间解决的一个问题。
我所做的是last_seen
在用户对象上实现了一个字段——这个字段在用户创建或帐户验证时没有填充。如果 cookie 是旧的,它会在登录和有意义的活动中填充。
如果用户登录时此字段为空,而不是将它们发送到用户区域,我将它们发送到教程然后更新该字段 - 如果该字段已填充,那么我只需更新该字段并将它们发送到用户区。
假设用户操作以任何有意义的方式记录,则可以将同一字段替换为计算变量。
另外,如果平台是社交的,这对于停用未使用的帐户和“状态”都是有用的值。
推荐阅读
- javascript - 如何将边框应用于画布上的透明图像?
- tensorflow - Keras tensorflow后端修改损失
- wso2-am - 在 WSO2 API Manager 的内置产品端点上启用 OAUTH,例如 /services/echo、/services/Version 和 /services/WorkflowCallbackService
- cntk - 获取参数数据的类型 Tensor[3,850,850] 与 cntk 上传递的变量的类型 Tensor[3,370,1224] 不兼容
- libgdx - 我在 Libgdx 中使用 Bullet Physics 来模拟软体,但软体不与重力发生反应,只是落在 -y 方向
- python - 如何纠正numpy sum中的数值错误
- php - PHP删除重复的数组值,它是一个日期
- sql - 修改查询以根据特定列检查组内的多个值
- flutter - Flutter中AppBar如何覆盖notch区域
- php - 如何将数组转换为字符串?数据库显示数组关键字而不是字符串