登录鉴权的三种方式:token、jwt、session实战浅析
发布时间:2023-03-23 13:38:41 所属栏目:教程 来源:
导读:因为我既对接过session、cookie,也对接过JWT,今年因为工作需要也对接了gtoken的2个版本,对这方面的理解还算深入。
尤其是看到官方文档评论区又小伙伴表示看不懂,所以做了这期视频内容出来
内容提要:
结合
尤其是看到官方文档评论区又小伙伴表示看不懂,所以做了这期视频内容出来
内容提要:
结合
|
因为我既对接过session、cookie,也对接过JWT,今年因为工作需要也对接了gtoken的2个版本,对这方面的理解还算深入。 尤其是看到官方文档评论区又小伙伴表示看不懂,所以做了这期视频内容出来 内容提要: 结合商业项目需求集成gtoken gtoken缓存模式gcache和gredis使用对比 登录鉴权后将用户信息赋值到context,供后续链路调用 自定义登录、登出、权限验证方法,各个方法分别写什么业务逻辑合适 视频教程 视频在这里:本期内容对应B站的开源视频 源码分享 因为涉及的知识点比较多,视频内容比较长。 如果你觉得看视频浪费时间,可以直接阅读源码: goframe v2版本集成gtoken goframe v1版本集成gtoken goframe v2版本集成jwt 分支:l10_登录鉴权_jwt_自定义中间件 goframe v2版本session登录 分支:l09_登录鉴权_session 官方调用示例文档 基本介绍 jwt和session的对接教程之前分享过,不作为这期内容的重点。如有需要可以私信我。 这期重点介绍Gtoken的对接: Gtoken是基于GoFrame框架的token插件,通过服务端验证方式实现token认证;已完全可以支撑线上token认证,通过Redis支持集群模式; 注意问题: 全面适配GoFrame v2.0.0 ; GoFrame v1.X.X 请使用gtoken v1.4.X相关版本。 gtoken优势 gtoken支撑单点应用使用内存存储,也支持集群使用redis存储;完全适用于企业生产级使用; 有效的避免了jwt服务端无法退出问题; 解决jwt无法作废已颁布的令牌,只能等到令牌过期问题; 通过用户扩展信息存储在服务端,有效规避了jwt携带大量用户扩展信息导致降低传输效率问题; 有效避免jwt需要客户端实现续签功能,增加客户端复杂度;支持服务端自动续期,客户端不需要关心续签逻辑; 特性说明 支持token认证,不强依赖于session和cookie,适用jwt和session认证所有场景; 支持单机gcache和集群gredis模式; # 缓存模式 1 gcache 2 gredis 3 fileCache CacheMode = 2 支持服务端缓存自动续期功能 // 注:通过MaxRefresh,默认当用户第五天访问时,自动续期 // 超时时间 默认10天 Timeout int // 缓存刷新时间 默认为超时时间的一半 MaxRefresh int 支持分组拦截、全局拦截、深度路径拦截,便于根据个人需求定制拦截器;建议使用分组拦截方式; 框架使用简单,只需要设置登录验证方法以及登录、登出路径即可; 在gtoken v1.4.0版本开始支持分组中间件方式实现,但依然兼容全局和深度中间件实现方式; 对比JWT 相比于JWT,Gtoken最大的特点是“有状态” 另外一个特点是不需要客户端刷新token,而是服务端自动刷新token的过期时间 大家结合自己的场景去使用,不要刻意去追求“无状态”或者“有状态”。能解决自己实际问题的才是好插件: 延伸 之前分享jwt和gtoken文章的时候,和群里的一位大佬探讨过。 如果你在登录鉴权方面有很高的要求,比如要和灰产斗智斗勇,那么建议你自己深入了解OAuth原理。 (编辑:驾考网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
