当前位置: 首页 > 网络应用技术

gtoken

时间:2023-03-06 16:43:56 网络应用技术

  文章一段时间以前: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