文章一段时间以前:Gtoken取代了JWT以实现SSO登录|带您阅读源代码并收到每个人的积极反馈,幸运的是,我已经在掘金上了一周。
得益于发掘和掘金平台。
开发过程相对稳定,但是在我们的测试过程中已经暴露了许多问题。
如果您还想使用Gtoken替换JWT来实现SSO登录,那么本文可以减少许多人的调试时间并分享我的旅程。
服务器正在考虑优化项目体验,替换了先前验证的登录状态,并由JWT替换为Gtoken。
Gtoken替换为SSO登录的JWT可以与前后通信中的JWT兼容。
我们的服务器的替换操作应与前端同学无关,因为背部端是兼容的,并且没有前端同学需要修改任何内容。
Gtoken的实施原则以及如何使用建议阅读我的文章:gtoken替换JWT实施SSO登录|带您阅读源代码。
我不会在本文中详细介绍。以下专注于踏上坑的旅程:
当您遇到登录问题时,您可以从这些方向找到:
如果我们使用的版本是gf1.x.x,我们只能使用gtokenv1.4.x相关版本。
该版本完全适合Goframe v2.0.0。
如果您遇到不一致的版本,例如提示:
您可以通过指定gtoken版本来解决它:
如果我们是团队的多人协作和遇到依赖版本时的依赖版本问题,我们可以考虑提交GO.Mod go git。
在我遇到这个问题之前,我的习惯是在Go.mod的Gitignore中。
您是否有更好的方法来解决需要指定的问题?您可以在评论区域中留言。
如果您的项目是集群应用程序,则GTOKEN的存储需要使用GREDIS模式,而不是单独的GCACHE模式。
这要求我们生成与获得令牌的各种项目相连的Cedis。
如果您是群集应用程序,则必须确保连接到涉及GToken生成的每个项目的REDIS和验证是一致的。
因此,当每个人都遇到令牌检查时,您可以首先检查配置文件,无论是否连接到REDIS库。
如上所述,如果Gtoken的存储使用REDIS中的集群项目共享。
然后,我们不能在整个环境中使用令牌,因为我们的环境,开发,测试,预发行,生产和其他环境通常会连接不同的redis。
如果多个用户在测试过程中登录到同一帐户,则可能存在奇怪的问题。
原因是:
gtoken允许您登录多个点,因此支持每个人都可以使用同一帐户登录。
但是!如果其中一个进行出口登录的操作,那么他人的登录状态也将是无效的,需要再次登录。
例如,集合令牌有效期为2小时,并且在2小时内有一个请求操作,这将刷新令牌的有效期。但是如果许多人登录了同一帐户,并且其中一个已撤回,则他人的登录态度将是无效的。
以上是我在开发中启动的坑。如果您在集成GTOKEN时遇到登录问题,则可以从这些角度检查问题。
感谢您的阅读,欢迎大家连续三家公司:类似,收藏家,硬币投资(关注)!
原始:https://juejin.cn/post/7102389025050361864