Laravel Sanctum 生成的TOKEN时间竟然很长,会不会不安全

虽然可以设置一下有效期,但基本上都时间很长

有没有办法比如说,设置60分钟到期,但是刚好快到期的内分钟内操作,就自动更新TOKEN的有效期增加60分钟

官方虽然可以让你设置时间,但是感觉都是要设置很久,如果设置很短,操作没一会儿就被退出也不行,没有办法像SESSION那样,只要有在操作就不会过期

刚刚试了一下,
我在配置文件中定义 expiration 了,但是数据库中的 expires_at 竟然为 null 你们有谁碰到过没

看了一下源代码,自己在
‘access_token’ => $user->createToken(‘seller user’, [‘seller-user’], now()->addHours(2))->plainTextToken
指定第三个参数,就可以写入过期时间了,这点和手册里面写的通过配置文件修改是完全不一样的,而且英文手册也是这样写的,完了,这让我不敢用了,很没安全感

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 29

oauth授权策略的刷新令牌,检测到401或者授权失效就用刷新令牌刷新,或者自己监测,token还有十分钟就刷新,两种组合起来用

1年前 评论

我是每次請求都會去更新一下到期時間 雖然性能比較差 但是對於後台來說夠用了 因為後台前後端分離了 就用這個代替session了

Laravel

他底層是會每次都會更新使用時間 我本來是想讓這兩個一起更新 但是看他源碼融合不了 就只能先更新到期時間 然後它底層再去更新一次使用時間了
本來是想讓這兩個融合一起更新的

1年前 评论

定时任务每分钟调用

PersonalAccessToken::where('last_used_at', '<', now()->subHour())->delete();

laravel 会自动刷新last_used_at,这样就跟session机制一样了,使用就一直不过期,不使用就一小时过期

1年前 评论

我在配置文件中定义expiration了,但是数据库中的expires_at竟然为null 你们有谁碰到过没

1年前 评论
winter-ice 1年前
winter-ice 1年前
深蓝色 (作者) (楼主) 1年前
winter-ice 1年前
深蓝色 (作者) (楼主) 1年前
winter-ice 1年前

我在调用的时候 $user->createToken('seller user', ['seller-user'], now())->plainTextToken 注意看第三个参数,加了一下时间,数据库就有了,这明显是一个BUG啊,和手册说的并不一样

1年前 评论

可以在AppServiceProvider中自定义过期的方法,我们这边是这么做的

//自定义token是否过期的方法
Sanctum::authenticateAccessTokensUsing(function ($accessToken){
    $expiration = config('sanctum.expiration', 120);
    $time = $accessToken->last_used_at??$accessToken->created_at;
    return $time->gt(now()->subMinutes($expiration));
});
1年前 评论
深蓝色 (楼主) 1年前
神的孩子丶都在跳舞 (作者) 1年前
神的孩子丶都在跳舞 (作者) 1年前
深蓝色 (楼主) 1年前
神的孩子丶都在跳舞 (作者) 1年前
深蓝色 (楼主) 1年前
神的孩子丶都在跳舞 (作者) 1年前

expires_at和配置文件里的expiration没有关系,你看下包里验证的规则就知道了 file

1年前 评论
深蓝色 (楼主) 1年前
深蓝色 (楼主) 1年前
神的孩子丶都在跳舞 (作者) 1年前
深蓝色 (楼主) 1年前
神的孩子丶都在跳舞 (作者) 1年前
神的孩子丶都在跳舞 (作者) 1年前

不是,你是不是理解错了? sanctum 颁发 token 的时候本身在库中就不会存储过期时间,过期时间是统一在 config/sanctum.php 文件中配置的。

你在文档哪里看到的可以自定义 token 有效期的?

1年前 评论
深蓝色 (楼主) 1年前

不过这个过期时间设置长了怕不安全,设置短了又怕操作一半要求验证,这个头大。

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!