本期视频登录后即可观看

Sanctum 接口授权 (ToB场景)

9 集视频
57分钟

本期 Laravel 7 视频教程咱们介绍一下 Laravel 最新引入的辅助开发包 Sanctum Airlock, 它采取的是github风格的授权方案,让咱们可以更加灵活的控制授权的流程和验证授权,本套视频课程咱们重点关注的是授权部分,至于API的开发部分,咱们也将开设专门的课程。

thinkings 2020.03.20 07:27

出新视频啦。喜欢每个视频前的配图。。赞。

国营 2020.03.20 07:30

哎,我做网站就是一个自我折磨的过程

thinkings 2020.03.20 07:32

能坚持下来真不容易 ,加油!

每个视频之前的配图,是用心的。赞。

这是种情怀。

小人物1号 2020.03.21 06:03

被作者的,视频封面和片尾, 吸引, 买了会员, 你敢信? 有和我一样的同学没

winter 2020.12.18 09:40

https://github.com/laravel/sanctum/blob/4961787dcb82d17c77754ec69051168992b7fa57/src/Guard.php#L67

想把created_at 改成last_used_at,有什么好的方式么?

国营 2020.12.18 10:43

你应该修改updated at 才符合逻辑啊,为啥修改创建的时间字段,你可以用下面的方式试一下:

const UPDATED_AT='last_used_modified';

winter 2020.12.18 12:05

Sanctum 默认的过期逻辑是定义了过期时间后,根据created_at字段来判断是否过期,这样不就用户正在操作也会过期么。想改成用last_used_at来判断

国营 2020.12.18 12:41

哈哈,我都没注意你说的是sanctum里的内容,这个必须要以创建时间作为判断条件,sanctum里颁发的令牌通常时效都很长的,这段时间内应用或网站很可能早发生过多次更新了。没关系的,即便过期了,再颁发一个就行了,这样可以更好的保护安全性,而不是说一直延长token令牌的时效期,那就太不专业了,是一种想当然的做法,千万不要这么干,过期就让它过期就好。咱们自己手机上用的很多应用哪个没有重新登录过啊,甚至手机都换过多少次了。

winter 2020.12.18 16:12

如果想做1小时无操作就退出登录的需求,不是就应该这样么?如果按照默认的逻辑,设置了过期时间,过期时间一到就会过期,岂不是用户正在操作中也会过期?

国营 2020.12.18 16:29

想复杂了,如果是这种需求,在前端处理就可以了,不需要去操作token的,而且咱们讨论的last_used_at这个字段本身在sanctum中也是存在的,并不需要咱们把created_at字段进行修改,如果一定要用token的话,让当前的时间去跟personal_access_token的last_used_at做比较就行了,但是这会涉及到对token的频繁删除和创建,如果是安全性要求极高的项目,这么做是有必要的,但是绝大部分项目只需在前端处理即可。

winter 2020.12.18 16:49

我没说要修改created_at,只是说把用created_at来判断改成用last_used_at来判断,sanctum中本身就有这个字段可以用来判断。如果不这样做,有更好的方式么?

国营 2020.12.19 05:42

官方应该没有提供这个定制,只能咱们自己做判断了,因为Sanctum跟Passport不同,Sanctum token的有效期都很长,所以只能靠自己写逻辑,可以搞一个middleware,这样至少代码层面上比较简洁,可维护性也比较高,更好的办法,我想不到了,坐等大家更好的方法吧。

winter 2020.12.19 09:54

搞一个middleware就要多一次数据库操作,Sanctum本身每次请求都要进行三次数据库查询了,我一开始也是自己写了个middleware,后来发现直接修改Sanctum能减少一次查询。

微信扫码登录